Methods and systems for customized garment design generation

ABSTRACT

Disclosed are methods and systems for generating a customized garment design. The method, when executed by a processor, comprises first receiving user data, generating at least one user signal, identifying a preferred garment category by analyzing the user data, retrieving related third-party data and public data, and retrieving features for the identified garment category from a database. For features associated with cuts and fabrics, preferred cut values and preferred fabric values are identified based on previously received data, and corresponding value scores computed. For other features, preferred feature values are identified, and corresponding value scores computed. One or more feature sets are generated by selecting a preferred value for each feature, where an associated feature set score is computed based on the value scores and one or more score adjustments. A customized garment design is generated by selecting a feature set with a high feature set score.

REFERENCE TO RELATED APPLICATIONS

This application is a non-provisional of provisional U.S. Ser. No.62/467,840, filed on 7 Mar. 2017, entitled “Systems and Methods forStyle Recommendation by Automated Means,” and is Continuation-In-Part(CIP) of and claims the benefit of priority to U.S. Ser. No. 15/138,103,filed on 25 Apr. 2016, and entitled “Methods of Determining Measurementsfor Custom Clothing Manufacture,” the entire disclosures of both ofwhich are hereby incorporated by reference in their entireties herein.

NOTICE OF COPYRIGHTS AND TRADE DRESS

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. This patent document may showand/or describe matter which is or may become trade dress of the owner.The copyright and trade dress owner has no objection to the facsimilereproduction by anyone of the patent disclosure as it appears in theU.S. Patent and Trademark Office files or records, but otherwisereserves all copyright and trade dress rights whatsoever.

FIELD OF THE INVENTION

Embodiments of the present invention are in the field of garment designgeneration, and pertain particularly to methods and systems forautomatically generating customized new garment designs, andautomatically delivering highly relevant and personalized stylerecommendations.

BACKGROUND OF THE INVENTION

The statements in the background of the invention are provided to assistwith understanding the invention and its applications and uses, and maynot constitute prior art.

There are many ways through which individuals can obtain a customizedgarment. One is to work with a tailor. Visiting the tailor in personallows necessary measurements to be taken and appropriate questionsasked to create a garment which will please the customer insofar as fit,fabric, color, structural features such as the type and size of buttons,plackets, and pockets, and ornamentation such as beads, sequins andpiping. However, not only is in-person tailoring a time consumingprocess, but a tailor shop may not offer fabrics and styles that thecustomer may wish to have.

Instead of visiting a tailor in person, customized garment can beordered from a custom clothing manufacturer directly via mail, phone, oronline orders. Customization can be done by selecting a style fromavailable options, for example, by answering various questions, andproviding necessary sizing and other information. Alternatively,customization information can be provided through a personal visit. Acombination of methods may also be used, and while online orderingthrough a website may be convenient, the available style options may bevery limited, and any particular service may not have styles that matchthe customer's preference very well. A customer of such services maywish to have an entirely novel garment design in terms of style, fabric,as well as other structural features and ornamentation based on theirpersonal style, but may not have the time to visit a tailor or the timeor skill to create a brand new design for themselves. In addition, suchservice may not offer designs that are particularly suited andflattering for the facial features, skin tone, or body shape for theuser.

Another issue with ordering custom garments online instead of ready-madeones is that the customer may not know his or her best fitting and musttake necessary body measurements for upload. Such self-measurementscould be inconvenient, annoying and highly inaccurate, with most peoplenot wanting to bother with measuring at all. Some customers arephysically unable to take all measurements required for a garment.Measurements provided by an individual may be inaccurate for severalreasons, including improper placement of a measuring tape and impropertension on the measuring tape. One measurement of a body length by afirst person may not equal to another measurement along the same bodylength by a different person. Moreover, although some smart phoneapplications are now available to scan a body map to determine necessarybody measurements, such applications often require complicatedcalibrations, and are only for making very simple shirts instead ofother types of garments.

Therefore, in view of the aforementioned difficulties, it would be anadvancement in the state of the art to provide methods and systems forautomatically generating a properly-sized, customized garment designbased on user style preferences, and facial and body characteristics.

It is against this background that the present invention was developed.

BRIEF SUMMARY OF THE INVENTION

The inventors of the present invention have created methods and systemsfor generating customized garment designs.

More specifically, in one aspect, one embodiment of the presentinvention is a method for generating a customized garment design,comprising the steps of: receiving user data about a user, from the useror from a third-party data source; generating at least one user signalfrom the user data; identifying a preferred garment category byanalyzing the user data, where the preferred garment category describesat least one style for the customized garment design; retrieving publicdata related to the identified garment category; retrieving a firstgroup and a second group of features for the identified garment categoryfrom an internal database, where each of the first group of features isassociated with a cut variable and a fabric variable; for each of thefirst group of features, identifying at least one preferred cut value,by analyzing the user data and the public data, where each preferred cutvalue is associated with a cut value score computed based on the atleast one user signal indicating an affinity to the user; for each ofthe first group of features, identifying at least one preferred fabricvalue, where each preferred fabric value is identified from a sourceselected from the group consisting of the user data, the internaldatabase, and the public data, and where each preferred fabric value isassociated with a fabric value score computed based on the at least oneuser signal to indicate an affinity to the user; for each the secondgroup of features, identifying at least one preferred feature value, byanalyzing the user data and the public data, where each preferredfeature value is associated with a feature value score computed based onthe at least one user signal indicating an affinity to the user;generating one or more feature sets by selecting one preferred cut valueand one preferred fabric value for each of the first group of features,and selecting one preferred feature value for each of the second groupof features, where each feature set is associated with a feature setscore computed from cut value scores associated with the selectedpreferred cut values, fabric value scores associated with the selectedpreferred fabric values, feature value scores associated with theselected preferred feature values, inter-fabric score adjustments, andinter-cut score adjustments; and generating the customized garmentdesign by selecting a feature set with the highest feature set score.

In some embodiments, the preferred garment category is a shirt. Each ofthe first group of features for the shirt is selected from the groupconsisting of collar, collar band, cuff, armhole, yoke, placket, lowerfront body, upper front body, pocket, front placket, back body, andhem/shirt tail, and each of the second group of features for the shirtis selected from the group consisting of seam style, embroidery, button,zipper, and Velcro.

In some embodiments, the preferred garment category is a dress. Each ofthe first group of features for the dress is selected from the groupconsisting of neckline, neck band, bodice, corset, center front, apex,waistline, skirt, pocket, placket, chemise, shoulder seam, arm, armhole,armhole ridge, and hemline, and each of the second group of features forthe dress are selected from the group consisting of seam style,embroidery, buttons, Velcro, zippers, belts, tassels, flowers, beads,sequins, piping, and laces.

In some embodiments, the user data comprises one or more of a photo ofthe user, a photo of a garment, a specification of the preferred garmentcategory, description of a favorite style, description of one or more ofthe pluralities of features, description of a current mood, user socialmedia statuses, social media comments made by the user, social mediacomments on the user's posts, and text description of a desired garmentdesign.

In some embodiments, the method further comprises specifying at leastone body measurement of the user for generating the customized garmentdesign, by a process selected from the group consisting of receivingdirect user input, three-dimensional body scanning, algorithmiccomputation based on answers to questions from the user, algorithmiccomputation based on a user photo, and transfer of data from aprofessional tailor.

In some embodiments, the method further comprises specifying at leastone garment measurement for generating the customized garment design, bya process selected from the group consisting of receiving direct userinput, algorithmic computation based on answers to questions from theuser, algorithmic computation based on a user photo, and transfer ofdata from a professional tailor.

In some embodiments, the method further comprises specifying at leastone garment measurement for generating the customized garment design by:receiving an image of a well-fitting garment with a reference objectfrom the user; recognizing the scale of the reference object; using thereference object and a hardware processor, correcting the perspective ofthe raw image to produce a corrected image; determining a scale of thecorrected image from the reference object for use with a linemeasurement tool; receiving a user input a first and a second end of theline measurement tool on garment measurement positions on the correctedimage; determining a garment measurement between the first and secondgarment measurement positions on the corrected image using the linemeasurement tool; and repeating the receiving user input and the garmentmeasurement determination steps n times to generate at least n+1 garmentmeasurements, wherein n is an integer equal to at least 3.

In some embodiments, the method further comprises determining whereinthe user data comprises at least one garment photo displaying apreferred garment; in response to determining that the user datacomprises at least one garment photo displaying a preferred garment,analyzing the at least one garment photo to determine a group ofreference features for the preferred garment; and determining a garmentsub-category within the garment category for generating the customizedgarment design, based on the group of reference features.

In some embodiments, each of the inter-fabric score adjustments isnon-positive, and each of the inter-cut score adjustments isnon-positive.

In some embodiments, the analyzing of the user data comprisesdetermining the user's body shape, and wherein the identifying of thepreferred garment category is based on the user's body shape.

In some embodiments, the at least one user signal comprises at least onefacial feature, where the least one facial feature is selected from thegroup comprising skin tone, facial bone structure, hair color, and eyecolor.

In another aspect, one embodiment of the present invention is a systemfor generating a customized garment design, which includes a serverhaving access to at least one processor and a user device; and anon-transitory physical medium for storing program code and accessibleby the server, the program code when executed by the processor causesthe processor to perform the aforementioned steps.

In yet another aspect, the present invention is a non-transitorycomputer-readable storage medium for generating a customized garmentdesign, the storage medium comprising program code stored thereon, thatwhen executed by a processor, causes the processor to perform theaforementioned steps.

Yet other aspects and embodiments of the present invention include themethods, processes, and algorithms comprising the steps describedherein, and also include the processes and modes of operation of thesystems and servers described herein. Other aspects and embodiments ofthe present invention will become apparent from the detailed descriptionof the invention when read in conjunction with the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention described herein are exemplary, andnot restrictive. Embodiments will now be described, by way of examples,with reference to the accompanying drawings. In these drawings, eachidentical or nearly identical component that is illustrated in variousfigures is represented by a like reference character. For purposes ofclarity, not every component is labelled in every drawing. The drawingsare not drawn to scale, with emphasis instead being placed onillustrating various aspects of the techniques and devices describedherein.

FIG. 1 is a block diagram of a system for automatic stylerecommendation, according one embodiment of the present invention.

FIG. 2 is an illustrative diagram showing relationships among user data,public data, and generated signals, according to one embodiment of thepresent invention.

FIG. 3 is an illustrative flowchart of a process for generating acustomized garment design, according to one embodiment of the presentinvention

FIG. 4A is an exemplary representation of a customized shirt designgenerated by the system, according to one embodiment of the presentinvention.

FIG. 4B is an illustrative screenshot of a mobile application showinganother exemplary representation of the customized shirt design in FIG.4A, according to one embodiment of the present invention.

FIG. 4C is an illustrative screenshot of the mobile application showinganother view of the exemplary representation in FIG. 4B, according toone embodiment of the present invention.

FIG. 4D is an illustrative screenshot of a desktop application showinganother view of the exemplary representation in FIG. 4B, according toone embodiment of the present invention.

FIG. 5 is a flowchart illustrating a process for customized garmentdesign generation, according to one embodiment of the present invention.

FIG. 6 is a flowchart describing an illustrative algorithm for garmentcategory classification based on photograph of a garment,according toone embodiment of the present invention.

FIG. 7 is an illustrative diagram showing exemplary garment categoriesand sub-categories, according to one embodiment of the presentinvention.

FIG. 8 is an illustrative diagram showing dresses with differentsilhouettes, according to one embodiment of the present invention.

FIG. 9 is an illustrative diagram showing labeled parts of a dress,according to one embodiment of the present invention.

FIG. 10 is an illustrative diagram showing labeled parts of the bodiceof a dress, according to one embodiment of the present invention.

FIG. 11 is an illustrative diagram showing different styles of necklinesfor a dress, according to one embodiment of the present invention.

FIG. 12 is an illustrative schematic diagram for a customized garmentdesign and manufacture system, according to one embodiment of thepresent invention.

FIG. 13 is a raw image of a favorite garment with a scale reference,according to one embodiment of the present invention.

FIG. 14 is a screenshot of an adjusted image of the garment of FIG. 13,together with exemplary line measurement tools, according to oneembodiment of the present invention.

FIG. 15 shows measurement tools and measurement reference positions foran unadjusted drawing from the image shown in FIG. 13, according to oneembodiment of the present invention.

FIG. 16 shows an illustrative flowchart for an exemplary workflow fordetermining measurements for customized garment design generation,according to one embodiment of the present invention.

FIG. 17 is an adjusted image of a pair of favorite pants, according toone embodiment of the present invention.

FIG. 18 is an adjusted image of a second pair of favorite pants, withdifferent styles, according to one embodiment of the present invention.

FIG. 19 shows an adjusted image of a sneaker, according to oneembodiment of the present invention.

FIG. 20 shows an adjusted image of a pair of shorts, according to oneembodiment of the present invention.

FIG. 21 shows an adjusted image of a short-sleeved shirt, according toone embodiment of the present invention.

FIG. 22 shows an adjusted image of a suit jacket, according to oneembodiment of the present invention.

FIG. 23 shows an adjusted image of a dress, according to one embodimentof the present invention.

FIG. 24 shows an exemplary computer system for determining measurementsfor custom clothing manufacture, according to one embodiment of thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION Illustrative Definitions

Some illustrative definitions are provided to assist in understandingthe present invention, but these definitions are not to be read asrestricting the scope of the present invention. The terms may be used inthe form of nouns, verbs or adjectives, within the scope of thedefinitions.

-   -   “GARMENT CATEGORY” refers to the kind, or type of a garment.        Exemplary garment categories include shirts, skirts, dresses,        suits, trousers and shorts, and many others. Finer        categorization may be made in terms of, for example, function,        or style. For example, dress sub-categories based on function        may include ball gowns and casual dresses, while dress        sub-categories in terms of style may include sheath dresses and        empire dresses. Similarly, trousers may be divided according to        style into jeans, cargo pants, and overalls.    -   “STYLE” generally refers to a form of a garment that        characterizes the garment in terms of its shape, structure, or        silhouettes. In the present disclosure, sub-categories of a        garment category may also be referred to as styles. A cut or        style of a garment may refer to the way the garment hangs on the        body, based on the physical shape of the fabric pieces used to        construct it, to the general shape of the garment, for example,        “slim fit”, “relaxed fit”, “fitted through the waist”, or to the        size or length of a garment. A style may also be interpreted as        how a user expresses his or her personality, preferences, and        tastes. Such expressions may convey a general feeling by means        of the use of fabrics, the overall cut, cut of specific garment        parts, or the design and placement of any functional or        ornamental accessories.    -   “FEATURE” in this disclosure refers to a particular part of a        garment, or a structural detail of such a part. Such features or        garment parts may be associated with a cut and a fabric. For        example, a shirt may comprise a front panel, a back panel, two        sleeves, and a collar, each of which is associated with a        specific cut or shape, and a specific fabric, where the fabric        may be characterized in terms of color, texture, material, and        similar traits. A feature may also refer to an ornamental        accessory, its detailed look, size, and position on the garment,        means of attachment to the garment, or other similar details.    -   “CUT” of a feature or garment part refers to a cutting or shape        of a feature or garment part, or the way such a garment part        hangs on the body based on the shape of the fabric pieces used        to construct it. A cut may also refer to the size or length of a        feature of a garment. For example, “boat neck” may refer to the        shape of the collar, while “deep” and “shallow” may refer to the        depth of the collar, and “wide” and “narrow” may refer to its        width. Another example may be “mermaid”, “flare”, or “A-line”        for the shape of a dress, and “mini, “knee”, and “ankle” may        refer to the length.    -   “BODY SHAPE TYPE” refers to a description of the body shape of        the user, for example, pear-shaped, petite, straight, tall, or        any combination of descriptions similar to the examples listed.    -   “SUBJECT”, “USER”, “CUSTOMER”, or “RECIPIENT” refers to the        human individual for whom the customized garment design is        created.

Overview

With reference to the definitions above and the figures provided,embodiments of the present invention are now described in detail.

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the invention. It will be apparent, however, to oneskilled in the art that the invention can be practiced without thesespecific details. In other instances, structures, devices, activities,and methods are shown using schematics, use cases, and/or flow diagramsin order to avoid obscuring the invention. Although the followingdescription contains many specifics for the purposes of illustration,anyone skilled in the art will appreciate that many variations and/oralterations to suggested details are within the scope of the presentinvention. Similarly, although many of the features of the presentinvention are described in terms of each other, or in conjunction witheach other, one skilled in the art will appreciate that many of thesefeatures can be provided independently of other features. Accordingly,this description of the invention is set forth without any loss ofgenerality to, and without imposing limitations upon, the invention.

While the methods disclosed herein have been described and shown withreference to particular operations performed in a particular order, itwill be understood that these operations may be combined, sub-divided,or re-ordered to form equivalent methods without departing from theteachings of the present invention. Accordingly, unless specificallyindicated herein, the order and grouping of the operations is not alimitation of the present invention.

When an individual desires a customized garment, he or she may visit atailor in person, or order from a custom clothing manufacturer.Customization can be done by selecting a style from available existingoptions and by providing necessary sizing information by telephone orthrough an internet connection. While online ordering through a websitemay be convenient, available style options may be limited, and customersof such service may wish to have entirely novel garment designs based ontheir personal styles, but may not have the time to visit a tailor orthe time or skill to create brand new designs for themselves. Moreover,a customer must provide all necessary body or garment measurements tothe custom clothing manufacturer. However, many people do not want tobother with or are unable to take the necessary measurements. Also, themeasurements provided by the individual may not be accurate.

The present invention proposes to tackle the limitations regardingdesign and measurements outlined above by providing methods and systemsfor customized garment design generation, comprising curating,selecting, customizing, and even designing from scratch a finishedgarment, with a style or design that has high affinity to the user orcustomer, that is, matched to the user's preferences and/or body traitsor attributes, while also possibly conforming to current fashion trends.

In addition to generating a new garment design based on user data,third-party data, and/or public data, embodiments of the presentinvention also allow sizing customization of such a design based on userinput or extracted sizing information. In some embodiments, sizinginformation is derived from user body measurements. In some embodiments,sizing information is derived from measurements of a reference garment,which may be a preferred clothing item such as a favorite shirt with avery good fit. In other embodiments, sizing information is derived fromone or more of user input, three-dimensional body scans of the user,algorithmic computation based on answers to questions from the user,algorithmic computation based on a user photo, or transfer of data froma professional tailor.

In one specific example, sizing information may be specified bymeasuring a reference garment provided by the user, for example, an oldshirt that fits the user extremely well. This reference garment may bereferred to as a favorite garment or a preferred garment. In someembodiments, instead of requiring direct measurement of the referencegarment by the user, embodiments of the present invention may performcomputer vision functions on photos of the reference garment, todetermine the desired sizing information, with the help of a scalereference.

Implementations of customized garment design systems embodying thepresent invention have several uniquely beneficial characteristics.First, the automated system and corresponding garment design processesprovide significant amount of savings in cost and time compared totraditional tailoring services, or dedicated searches for garments withpleasing styles fit for the user. Unlike conventional garment designsystems where the user is asked to select or choose preferred designsfor every single feature, part, or attribute of the garment, in asequence of steps, embodiments of the present invention is much lesstime consuming because they automatically consider combinations ofgarment features, matching pairs and sets of fabric colors, cuts,accessories, materials, and further take into account of userpreferences, thus limit the total number of irrelevant options that theuser has to examine.

Second, the automated system is much more comprehensive thanconventional systems, as it not only offers readily available garmentfeature options stored internally within the system, but also utilizesother user, third party, and public data to analyze user preferences,current fashion trends, designs suitable for the user's traits, andincorporate the result of the analysis in the customized garment designprocess. The user's traits may include physique, body shape, facialfeatures, skin tone, complexion, and hair color. The user preferencesmay describe or indicate, for example, how colorful the user would likethe garment to be, whether an unconventional or a traditional style isdesired for the cutting of the garment, whether the user preferredconservative styles or otherwise, whether ornamental accessories arepreferred, and if so, in what shapes, sizes, colors, and textures, andat what locations on the garment. Using such user preferences orsignals, the system automatically matches to stylistic options for thegarment to be designed, while allowing user input to further modify,revise, or update such user preferences. Moreover, the user data onwhich analyses are performed may be of many forms and may come from awide variety of sources. For example, they may be textual, photographic,and may be extracted from specific contexts such as social mediaplatforms, while conventional systems typically consider browsing orshopping history alone. Furthermore, as current fashion trends or otherpublic data are taken into account during the design process, the systemallows the garment customization process to introduce new trends,surprises, and other design choices that may otherwise by overlooked bythe user.

As a specific example, some embodiments of the present invention providecustomized garment designs that are both flattering for the user'straits such as facial features and body shapes, and suited for aparticular occasion or function such as cocktail or work, while stillcatering to the user's preferences for style. For instance, colorschemes may be coordinated among different parts of the garment, amongdifferent pieces of garments to be matched and worn together, oraccording to the user's preferred cuts and styles. A professional maleuser may provide photos of himself in various business occasions, fromwhich formal dress shirts with particular color schemes and textilechoices may be designed. An adventurous female user with a full figuremay get suggestions of fabrics with big and bold patterns of black andwhite, which are known to be slimming, instead of fabrics with smallpatterns of bright yellow and pink; a slimmer user with similarpreferences may get garment designs with both types of fabrics.

Third, methods and systems implemented according to embodiments of thepresent invention quantify garment features and attributes numerically,thus enabling the consolidation of the many types of data as describedabove, and direct comparison and ranking of multiple designs. Forexample, the system may generate scores for different cuts and fabrics,for other attributes of garment parts and features, and combine thesescores to formulate feature set scores for an overall garment. Thesystem may then select one or more garment designs with high feature setscores for recommendation to the user. Such scores may be furtherfine-tuned or adjusted according to interactions and compatibility amongdifferent colors, fabrics, textures, cuts, user traits, and userpreferences. For instance, traditional cuts of all parts of a garmentmay work well for a user with a high conservative preference, butsurprising features may be put together for a more adventurous user.Lace and leather may have a favorable score adjustment for the moreadventurous user but an unfavorable score adjustment for the moretraditional user, even though keeping a fabric with laces for the entiregarment may work well for the conservative user.

Customized Garment Design Generation

FIG. 1 is a block diagram of an exemplary system 100 for automaticallygenerating a style recommendation, according to one embodiment of thepresent invention. System 100 may include a central processor 108, amemory unit 102 which maintains one or more programs, 104 and 106, adisplay or output 116 such as a Liquid Crystal Display (LCD) panel, acommunication link 114, a user or input device 118 capable ofinteracting with a user, and a database 120 for storing productinformation. Processor 108 may access public data 112 via a network ornetwork cloud 110. Although shown as a stand-alone system, embodimentsof the present invention may be implemented using hardware and/orsoftware, and may be server-based. Many components of the system, forexample, network interfaces, have not been shown, so as not to obscurethe figure. However, one of ordinary skill in the art would appreciatethat the system necessarily includes these components.

When the system is in operation, memory unit 102 is loaded with one ormore routines, programs, or applications. Public and user data may beloaded into memory unit 102 under the control of processor 108, eitherad-hoc, or as a result of a data caching operation or other operationsthat require such placement of data.

Processor 108 is a hardware component configured to execute instructionsand carry out operations associated with computer system 100. Examplesof such a processor could be a CPU of any architecture (CISC, RISC,EDGE, 8-bit, 32-bit, 64-bit, etc.), a combination of CPU's of anyarchitecture performing operations in parallel, a combination ofspecialized CPU's such as a microcontroller coupled with a digitalsignal processor, the hardware of which is efficiently designed toprocess certain signals (such as graphics in a GPU), or perhaps a vectorprocessor, or any other processing device that can carry out the task ofexecuting instructions and carrying out operations associated with stylegeneration system 100.

Memory unit 102 may represent random access memory (RAM) devicescomprising a main storage of the hardware, as well as any supplementallevels of memory, for example, cache memories, non-volatile or back-upmemories (e.g. programmable or flash memories), and read-only memories.In addition, memory may be considered to include memory storagephysically located elsewhere in the hardware, e.g. any cache memory inthe processor, as well as any storage capacity used as a virtual memory,e.g., as stored on a mass storage device.

Communications link 114 may be any method of exchanging data betweenprocessor 108, database 120, and receiving device 118, including but notlimited to a physical connection, a wireless network connection, 3G, 4G,a cloud service, or a virtual communication link, such as between a hostoperating system and a virtual operating system. Networks may also beimplemented as a local area network (LAN), a wide area network (WAN), awireless network, and/or the Internet, among others, to permit thecommunication of information with other computers coupled to thenetwork. Network communication is also achieved by connecting processor108 to network cloud 110. Processor 108 is then able to access orcommunicate with remote public data set 112. One of ordinary skill inthe art will appreciate that network cloud 110 may be implemented in thesame way as communications link 114. It should be appreciated that thehardware typically includes suitable analog and/or digital interfaces tocommunicate with each other. Remote public data set 112 may representany kind of remote data set accessible over communication protocols suchas HTTP/HTTPS, FTP, etc. In some embodiments, additional third-partydata (not shown) may also be accessed by processor 108 via network cloud110, where such third-party data may comprise user data controlled bythird-party data service providers.

The hardware for input device 118 may include, for example, a keyboard,a touch pad, a touch screen, a mouse, a scanner, a microphone, or a webcamera; display 116 may be a Liquid Crystal Display (LCD) panel or otherforms of display including a touch screen. For additional storage, thehardware may include one or more mass storage devices not shown in FIG.1, e.g., a floppy or other removable disk drive, a hard disk drive, aDirect Access Storage Device (DASD), an optical drive (e.g. a CompactDisk (CD) drive, a Digital Versatile Disk (DVD) drive, etc.) and/or atape drive, among others. Database 120 is any unit, for example, a SQLdatabase, capable of storing, sharing, and updating user information,product information, recommendation information, weights, signals,associations, fabric data sets, fabric groups, etc. The data may bestored in any structure; some possibilities include a relationaldatabase, e.g. SAP, Oracle, MySQL, PostgreSQL, IBM DB2, Microsoft SQLServer, SQLite; a NoSQL database such as MongoDB; or writable files in afile system.

The hardware in FIG. 1 may operate under the control of an operatingsystem, and executes various computer software applications, components,programs, codes, libraries, objects, modules, etc. indicatedcollectively by reference numerals to perform the methods, processes,and techniques described herein.

Embodiments of the present invention may be implemented in a clientserver environment. User devices on the client side may include inputdevice 118 and display 116, which may access the service of a systemserver comprising processor 108, memory 102, database 120, which in turnutilize public data 112, through some network link or cloud 110 such asthe Internet.

Accordingly, FIG. 2 illustrates an exemplary process 200 for generatingsignals from primary data, public data, or a combination of primary andpublic data, according to one embodiment of the present invention.

Primary data may be user primary data, or primary data about possible oravailable garment features and styles, for example, fabric primary data.User primary data may comprise user data owned by the user, orthird-party user data collected and stored by third-party data providersabout the user. Such user primary data may be collect from differentsources over extended period of time and stored locally in a databaseinternal to the garment design system. Examples of primary data mayinclude but are not limited to photos of the user or garments preferredby the user, user specification of garment category, description of afavorite style, description of preferred features including cuts andfabrics, description of current mood, user social media statuses, socialmedia comments made by the user, social media comments on the user'sposts, and any other open ended text description of the user state,preferences, or the desired garment design. A user's social media datamay be considered third-party user data, and may be derived from opt-indata, for example, by setting up one or more connected accounts thatreveal some subset of the identity and preferences of the subject ofrecommendation, which may comprise the step of providing a username andpassword, which may further comprise the step of providing personallyidentifiable information, and which may further comprise the step ofproviding other private information.

In various embodiments, user primary data may be collected throughdirect user inputs, and/or indirect user data collection. Direct userinputs include, but are not limited to, user upload of past photoscontaining a preferred style or fabric, user selection of desired stylesand fabrics, or the like. User data may alternatively be collectedindirectly from a number of different sources including but not limitedto (a) conversion actions taken on existing e-commerce websites, (b)browsing behavior on said e-commerce websites, (c) e-mail opens forrelevant e-mails sent to the subject, (d) social network data such asphotos, videos, comments, connections to other users, relative strengthsof relationship to other users, location check-ins, likes, dislikes,derivation of a time series of emotions through emoticons, usage ofconnected apps, content of chat communication, counterparties to chatcommunication, frequency of usage, medium of usage (e.g. desktop vs.mobile), click interest, and other social data, (e) job searches made,(f) bookmarks saved, or even (g) time spent on certain Internetdestinations. User data may pertain to any entity and typically thesubject of primary data is a person or product. For example, user datamay be content that the user has posted on public social networks oreven private e-mails they have sent. Primary data may also be productdata, such as a product's ISBN number, cost, color, size, dimension,weight, reviews, and ratings. As already alluded to earlier, one ofordinary skill in the art will recognize that the subject of primarydata can also extend beyond people and products.

From primary data such as user data, and possibly public data, thesystem may generate various signals or user signals, which may quantifya user's preferences, traits and attributes, and other pertinentinformation necessary for garment design. These may be mapped onto ascale from which any two or more elements may be compared. An example ofa signal that is generated from primary data may be a happiness signalon a 0-100 scale, where the highest level of happiness is 100 and thelowest level of happiness is 0. This metric may be calibrated usingpublic image data from news sources, confirmed by nearby article textthat describes the happiness level of the subject in an image. Forexample, an image showing people negatively affected by war is unlikelyto show a level of happiness in the subjects of photographs and suchphotographs may be used to calibrate a lower end of the happiness metricscale. On the other hand, a news photograph about an Oktoberfestcelebration is likely to show images of people at high happiness levelsand these images may be used to calibrate a higher end of the happinessmetric scale.

The user data used to create this exemplary happiness scale could bephoto or other data opted in by authenticating Facebook and Instagramprofiles, or other data sources where there is a high concentration oflifestyle photos available. Aside from a scale of happiness to sadness,other examples of scales by which signals are measured could be: a scaleof funky to proper, a scale of intellectual to practical, a scale ofcolorful to monochrome, a scale of dark to light, a scale of adventurousto prudent. Generally, the subject of the primary data can be people orit can be things. Examples of people are ordinary individuals withFacebook accounts, and examples of things may be fabrics that are usedas building blocks for an apparel product. One of ordinary skill in theart will recognize that these scales can extend far beyond the onesalready mentioned, to capture any measurable property of any person,object, concept, or thing.

What is shown in FIG. 2 is a single piece of primary data 202, whichcould be an image of a user, for instance, and a single piece of publicdata 204 being considered in light of each other during signalgeneration. One of ordinary skill in the art will recognize that therecould be various primary data and public data considered simultaneously,or even the omission of public data, or in another embodiment, theomission of primary data, and still signals can be generated. In thisexample, user data 202 is the sole determining factor for derivingsignal 206, perhaps through an image transformation such as coloranalysis. Signal 206 could in that case be called “percent_black” andcarry a value of 37%.

In this example, public data 204 is the sole determining factor forderiving signal 210. Public data 204 could be an OEM thread count for afabric that the user of primary data 202 is known to have worn before,represented as a signal derived from another piece of primary data (notshown) or even primary data 202 itself. The signal 210 generated may bea pattern profile for a fabric, such as “checkered” carrying a value of“true”, or “plaid in trend” carrying a value of “no.”

Finally, signal 208 is derived from a combination of analysis done onboth primary data 202 and public data 204. In this example, it'spossible that signal 208 is a measure of happiness of the userassociated with primary data 202 when wearing a fabric described bypublic data 204. An exemplary happiness level may be 78, or 0.78 isnormalized to between 0 and 1.

From these user data and signals, the system may identify a preferredgarment category for which the user would like a customized garmentdesign, for example, a dress or a coat. For example, one or more photosshowing the user or someone else wearing preferred garments may beprovided as input, and the system may identify a category of thepreferred garment, and for that particular category, identify candidatestyles for the overall shape, representative features of the category.These features and styles may then be scored according to signalspreviously generated according to FIG. 2. Collectively, the system maythen generate one or more sets of features to put together a garmentdesign with a high score indicating a likelihood that the garment designcomplies to user preferences, and/or are complementary to the user'sfacial and body traits, where facial and body traits such as eye colorand body shape or built may be analyzed from user photos, or determinedby direct user input or other means. Fine tuning of such scores andadjustments may take place, and may further improve the affinity betweenthe finished design and user preferences, traits and current fashiontrends.

FIG. 3 is an illustrative flowchart of an exemplary process forgenerating a customized garment design, according to one embodiment ofthe present invention. In this example, the objective is to select athree-fabric set for a men's shirt. This specialized case isillustrative, and may be extended to much more general cases with othertypes of garments and user or primary data.

Upon initialization, a user is presented at steps 302 and 304 with alist of data-rich services he or she is likely to have accounts with.Such services may include, but are not limited to, photo sharingservices like Instagram, life event timelines and social networks likeFacebook, video databases such as YouTube, blogs such as Tumblr,professional profiles like LinkedIn, or even one or more e-mailaccounts. A common factor among any service the user may be asked toopt-in is that it would provide a rich data set of user-generatedcontent that would constitute user data to the system.

The next step 306 describes a process of taking all these user data andgenerating user signals from them. The signals described are a happinesssignal (on a scale from happy to sad), funkiness signal (on a scale fromfunky to proper), intellectuality signal (on a scale from intellectualto practical), colorfulness signal (on a scale from colorful tomonochrome), complexity signal (on a scale from complex to simple), andadventurousness signal (on a scale from adventurous to prudent). Eachsignal may be appropriately quantized, for example to a value between100 and 0, or 1 and 0. There are many sub-processes that may happen inorder to derive signals, such as but not limited to, image manipulationand transformation, color space projection, Fourier image analysis,facial and body feature extraction, image comparisons, natural languageprocessing, natural language understanding, and many others.

The next step 308 describes a specific way in which the user signals maybe used to determine a fabric value score. In this example, both usersignals and fabric signals have been normalized into a scale of 0-100for their respective dimensions, and a distance threshold of 10 has beenchosen as a tolerance for determining whether to match a user signal toa fabric signal. This leads to step 310, where for each fabric that hasbeen matched with a user signal, an association is created. At thisstep, the system may also ascribe and derive a weighting and additionalmetric by which to qualify and later prioritize the association. Itwould be especially useful to do so to compare associations with eachother.

The next step 312 describes an example where 3 fabrics are chosen by ametric of strength. For example, the strength metric may measure thecorrelation or tie between the user signal and the fabric signal,perhaps through a distance calculation, and choosing the ones thatproduce the three minimum distances in the set. Then in step 314, thisembodiment of the present invention chooses to present all combinationsof the three chosen fabrics to the user for purchase.

FIG. 4A illustrates an exemplary image 400 comprising a fabric set for acustomized shirt, as rendered for a user to review, according to oneembodiment of the present invention as described in FIG. 3. In thisparticular example, “fabric set” is used instead of a “feature set,”assuming that features of the shirt, also known as the components andparts of the shirt are already determined, for example to include acollar, two long sleeves, a front body portion, and aback body portion.Also, a cut or shape for each feature is graphically presented as well.

Image 400 helps the user understand how fabrics are put together in hisshirt. For illustrative purposes only, different shirt components orfeatures are labeled with part names, such as collar band 404, collar412, and pocket 410. In most embodiments, feature names are notpresented to the user unless requested, while cut and fabric choicesincluding color and texture may be illustrated graphically as shown inFIG. 4A.

Note that FIG. 3 and FIG. 4A illustrate a special case of how the systemmay design a fabric set for a shirt with a known set of features havingpredetermined cuts. In general, the present system may design a garmentin its entirety, namely, a combination of respective cuts and fabricchoices for every garment part when applicable. A “feature” in thisdisclosure refers to a particular part of a garment, or a structuraldetail of such a part. Such features or garment parts may each beassociated with a cut and a fabric. For example, a shirt may comprise afront panel, a back panel, two sleeves, and a collar, each of which isassociated with a specific cut or shape, and a specific fabric, wherethe fabric may be characterized in terms of color, texture, material,and similar traits. A feature may also refer to an ornamental accessory,its detailed look, size, and position on the garment, means ofattachment to the garment, or other similar details. A “cut” of afeature or garment part refers to a cutting or shape of a feature orgarment part, or the way such a garment part hangs on the body based onthe shape of the fabric pieces used to construct it. A cut may alsorefer to the size or length of a feature of a garment. For example,“boat neck” may refer to the shape of the collar, while “deep” and“shallow” may refer to the depth of the collar, and “wide” and “narrow”may refer to its width. Another example may be “mermaid”, “flare”, or“A-line” for the shape of a dress, and “mini, “knee”, and “ankle” mayrefer to the length.

In some embodiments, features may be classified into two types. Each ofa first type of garment features may be associated with a cut variableand fabric variable, which may take on various values and haveassociated scores. For example, the collar of a dress shirt may be afeature that has a cut variable with possible values such as “pin” or“button-down,” and possible fabric values such as “silk in solidlavender” or “blue polka dots on white cotton.” To each of these cut orfabric values, a score may be assigned according to one or more usersignals which capture user preferences and traits, such as facial orbody characteristics. A second type of features may not have associatedcuts or fabrics, but may take on feature names and values, such as“small round black buttons”, also with associated scores. Embodiments ofthe present invention may score a garment design by assigning a score tothe entire set of features by combining respective feature scores basedon the two types of features, and select the one or more highest scoredgarment designs to present to the user. Again, such a score may becalculated according to user data and signals including userpreferences, facial features, and body shape, and fine-tuning may beachieved with score adjustments, as explained in FIG. 5.

In FIG. 4A, cuts for different parts of the customized shirt design areclearly presented, with a striped base fabric 402 for the front body,and white fabric for other parts of the shirt. Textures for each partare omitted because of the difficult in representing such fine detailswithout cluttering the image. In some embodiments, fabric 402 may beused as a customized base fabric used throughout the majority of thefinal product, including not only the front body, but also the backbody, the sleeves, and the collar. Similar, in some embodiments, a firstnon-white fabric may be recommended as an inner collar fabric that linethe inside of collar 402; a second fabric may be recommended for thecuff 406; a third fabric may be presented as an inner button fabric thatlines the inner buttons in the top center/front placket region 408; afourth fabric may be presented for the pocket 410; a fifth fabric may bepresented for the collar lining of the outer collar 412, showingcontrast against the base fabric in the design. Each of these shirtfeatures could use a different fabric, or some may use the same fabric.A combination of fabrics may be shown to the user in a set as shown inFIG. 4A, as a customized shirt design choice.

FIG. 4B through FIG. 4D show other ways of presenting the fabric set inFIG. 4A to the user, where the fabric set may have a highest set scorecalculated based on user preferences, traits, and current fashiontrends. FIG. 4B is an illustrative screenshot 430 of a mobileapplication showing another exemplary representation 431 of thecustomized shirt design in FIG. 4A, according to one embodiment of thepresent invention. As previously discussed, a shirt design may be viewedas a set of fabrics and cuts for respective parts of the shirt. In thisparticular case, design 431 is shown as a folded shirt, with the collarand front portion clearly visible. The pocket style and size shown inthis figure differ from that shown in FIG. 4A, as embodiments of thepresent invention may allow manual selection of individual features, andpresent such selections visually to the user such as shown in FIG. 4B.In addition, at the bottom of the display, the user may confirm fabricdetails of the shirt design by clicking on the “continue” button 435. Insome embodiments, the user may click on a forward arrow 432 to choose toview other fabric sets with a second highest score, a third highestscore, and the like. In some embodiments, the user may use icons such as433 and 434 to revise portions of the design by substituting arecommended feature, including cuts, fabrics, and other shirtaccessories.

FIG. 4C is an illustrative screenshot 460 of the mobile applicationshowing another view of the exemplary representation in FIG. 4B, whenbase fabric icon 433 has been clicked. In this example, the user mayconfirm, accept, or save the base fabric with the given fabric detailsfor different parts of the shirt by clicking the “save” button 465, orprovide alternative user data including user preferences by clicking on“cancel to start over” button 470. Details 462 of the fabric are shownon the bottom left, while another recommended fabric 464 or a slightlylower fabric score is shown on the bottom right as an alternativechoice, so that the user may select another fabric for just the basefabric, for example, from purple oblique stripes to a solid baby blue,while keeping the rest of the fabric set. Once an alternative choice forthe base fabric is selected, an overall fabric set score may be updated,by not only substituting the fabric score of the previous choice withthe new one, but also taking into account whether the new choice matchesthe rest of the fabric set. In other words, inter-fabric adjustments maybe applied to the overall fabric set. Similar to the base fabricpresented here, the user may manually change or adjust fabricpreferences for other individual parts of the shirt. Fabric choices maybe presented in a decreasing order of fabric scores. Such scores may bepresented to the user directly, or may be presented in descriptive termssuch as “good match,” “good substitution,” “acceptable match,” or “notrecommended.” Moreover, instead of altering individual fabrics, the usermay change his or her preferences in a more general way, for example,from preferring “bold patterns” to preferring “stripes”, for the cuffand outer collar of a shirt. After the change, the system mayrecalculate scores for possible feature sets by taking into account bothold and new user data and signals to generate new or adjustedrecommendations.

FIG. 4D is an illustrative screenshot 490 of a desktop applicationshowing another view of the exemplary representation in FIG. 4B,according to one embodiment of the present invention. This is thedesktop version of FIG. 4B serving the same purpose.

In some embodiments of the present invention, fabrics may be recommendedfor garments other than shirts; for example, dresses, skirts, jackets,pants, skirts, blazers, jackets, coats, sweaters, T-shirts, polo shirts,and even shoes and belts. In some embodiments, different garment typesmay be suggested to the user, possibly depending on the current styletrends, fabric inventory, cost, or even production time. In someembodiments, recommended designs or fabric sets may be matched toready-made garments available on third-party sites such as Amazon andASOS, for suggestion to the user.

In some embodiments, deep learning may be performed on individual usersto automatically learn the users' lifestyle, for presenting multipleproducts for a user to buy, where such products may come from differentcategories, and may be available from multiple third-party sites. Insome embodiments, such product recommendations may be made based onfabric, garment, or style choices made by the user.

FIG. 5 is a flowchart 500 illustrating a process for customized garmentdesign generation, according to one embodiment of the present invention.Upon initiation at step 510, the system may receive, at step 520, userdata about a user for whom the customized garment is to be designed.Such user data may be received from one or more data sources, includingthe user, third-party data sources, and the like. In some embodiments,such user data may be retrieved concurrently from multiple sources inreal time. In some embodiments, such user data may be received fromcorresponding data sources at different time instances across extendedtime periods, and stored in memory or databases associated with thegarment design system. At step 530, one or more user signals aregenerated. An example of how user signals may be generated from userdata and public data is discussed with reference to FIG. 2. The systemmay then identify a preferred garment category by analyzing the userdata at step 540, where the preferred garment category describes atleast one style for the customized garment design. More details aboutgarment categories are discussed with reference to FIGS. 6 and 7.

At step 550, the system may retrieve public data related to theidentified garment category. The step 560, the system may retrieve afirst group and a second group of features for the identified garmentcategory from an internal database, where each of the first group offeatures is associated with a cut variable and a fabric variable, andwhere each of the first and second groups of features may comprise oneor more features. For example, if the user seems to want to design ashirt, the system may retrieve a list of features for the shirt,including collar, sleeves, front body, back body, cuff, buttons, andpocket. If a dress is desired, a different list of features may beretrieved. Such a feature list may be detailed, or may be relativelysimple, with only a few number of essential features. “Internal” refersto a virtual relationship to the system. An internal database may bephysically placed at a remote location, yet still be consideredinternal, as long as it provides storage services to the system and isreadily accessible.

The first group or type of features may be viewed as parts of thegarment made of textiles. Thus, each of the first type of features iscut into a particular form, structure, or shape, and affiliated with oneor more textile or fabric properties such as color, texture, material,strength and durability, water resistance level, and the like. A cutattribute for a feature refers to the shape or style of the feature,while a fabric attribute refers to the feature's texture and color, andpossibly other textile-related fabric details. A feature attribute maybe viewed as a variable that may take on one of many values. Forexample, the feature “collar” may have a cut variable that may take acut value of “spread,” and a fabric variable that may take on the value“organic cotton in lavender.” Exemplary features of the first type for ashirt include collar, collar band, cuff, yoke, placket, lower frontbody, upper front body, pocket, front placket, back body, and him/shirttail; exemplary features of the second type for a shirt include button,monogram, care label, and the like. Exemplary features of the first typefor a dress includes neckline, neck band, bodice, corset, center front,apex, waistline, skirt, pocket, placket, chemise, shoulder seam, arm,armhole ridge, and hemline; exemplary features of the second type for adress include laces, sequins, trimmings, and the like. Such featureclassifications may be different in different embodiments of the presentinvention. For example, a feature present in one system may be omittedin another system, and one feature classified as the first type in onesystem may be classified the second type in another system. Exemplaryclassifications of features discussed above are for illustrativepurposes only, and should not limit the scope of the invention.

The second group or type of features may refer to parts of the garmentthat are not made of textiles, for example seams, embroidery, buttons,Velcro, zippers, belts, tassels, flowers, beads, sequins, piping, andlaces. Such features are generally not directly associated with cuts andfabrics. Instead, they may each have specific features values. Forexample, feature values for an ornamental accessory may refer to itsdetailed look, size, position on the garment, and its means ofattachment to the garment. In a specific example, a feature of thesecond type may refer to an embroidery on the pocket of a shirt. Thefeature value for such the embroidery may be “red rose in silk.” Foreach of the first type of features, there are many possibilities for theassociated cut value and fabric value. For each of the second type offeatures, there are many possibilities for the associated feature value.

At step 570, for each of the first group of features, the system mayidentify at least one preferred cut value, by analyzing the user dataand the public data, where each preferred cut value is associated with acut value score computed based on the user signals indicating anaffinity to the user.

At step 575, for each of the first group of features, the system mayidentify at least one preferred fabric value, where each preferredfabric value is identified from a source selected from the groupconsisting of the user data, the internal database, and the public data,and where each preferred fabric value is associated with a fabric valuescore computed based on the user signals to indicate an affinity to theuser. At step 580, for each the second group of features, the system mayidentify at least one preferred feature value, by analyzing the userdata and the public data, where each preferred feature value isassociated with a feature value score computed based on the user signalsindicating an affinity to the user. Steps 570, 575, and 580 will bediscussed in more detail with reference to FIGS. 8-11 later.

At step 585, following at least some of the above steps, the system maygenerate one or more feature sets by selecting one preferred cut valueand one preferred fabric value for each of the first group of features,and selecting one preferred feature value for each of the second groupof features, where each feature set is associated with a feature setscore computed from cut scores associated with the selected preferredcuts, fabric scores associated with the selected preferred fabrics,inter-fabric score adjustments, and inter-cut score adjustments. Suchscore adjustments may be positive, zero, or negative, where a positivescore indicates a good combination, while a negative score indicates abad match or a bad combination. In some embodiments, inter-fabric orinter-cut score adjustments are zero or negative, where a zero scoreindicates a good or an optimal match, and a negative store indicates aless desirable match.

At step 595, the system may generate a customized garment design byselecting a feature set with a highest feature set score. Feature setscores may be normalized to a scale of 0-100, with 100 being a perfectfit for the user, and 0 being a very poor choice, or −1 to 1, with 1being an ideal design for the user and −1 being a mismatch. In someembodiments, feature set scores may be derived from an average orweighted combination of cut scores, fabric scores, and feature scoresassociated with different features of the garment.

In an illustrative example, a user may provide five input photoscontaining dresses with asymmetric skirts and having vibrant, brightcolors. A high user funkiness signal of 94 out of 100 may be derivedfrom the user input data by comparing a detected color of the dress to aknown spectrum where each color is assigned a funkiness score. Apreferred garment category of asymmetric skirts may also be determinedfrom the user input data. Thus, any skirt portion of a dress may beassigned a cut score of 100 out of 100 if it is asymmetric, and a royalblue and turquoise fabric with bold patterns may have a fabric funkinesssignal of 85, which may in turn translates or coverts to a very highfabric score for this user. For example, in some embodiments, the fabricscore may be computed from the funkiness signal by subtracting thedifference between user funkiness and fabric funkiness from 100. In thiscase where user funkiness is 94 and fabric funkiness is 85, the fabricscore may be computed as 100−|94−85|=91. Note in this definition for thefabric score, if both user funkiness and fabric funkiness are high, orboth are low, the computed fabric score is high. If one is high and theother is low, the computed fabric score is low. Thus, indicating anaffinity of the chosen fabric to the user or user preferences. Othersimilar definitions for fabric scores, cut scores, and feature scoresmay be defined in similar embodiments of the present invention, tomeasure respective affinities of a given cut, fabric, or feature to theuser, in terms of a correlation between user and fabric signals.

Similarly, for the user above, a black cotton fabric may have a lowfabric funkiness signal and a corresponding low fabric score of 26; apencil skirt part of a dress may be symmetrically shaped, with arelatively low cut score of 30. If the dress is made from one fabriconly, a single “body” feature may describe the dress, with a fabricattribute indicating the textile used for making the dress, and a cutattribute indicating a cut of the skirt portion of the dress. In thiscase, a single feature of the first type is considered, and features ofthe second type are omitted entirely. The fabric score and cut score asstated above can be averaged or weighted, to provide an initial orpre-adjusted feature set score of (100+91)/2=95.5 for a dress having anasymmetric skirt made from a royal blue and turquoise fabric with boldpatterns, (100+26)/2=63 for a black dress with an asymmetric skirt,(30+91)/2=60.5 for a dress with a pencil skirt made of a royal blue andturquoise fabric with bold patterns, or (30+26)/2=28 a black dress witha pencil skirt. Clearly the first blue and gold asymmetric-skirted dresswith the highest feature set score matches the user's preferences thebest, and may be presented as a customized dress design to the user.

In some embodiments, default or pre-determined values for features,cuts, fabrics, and other components of the garment may be loaded andused in the garment design process, if no explicit values are extractedfrom the user data. For example, the cut values in step 570 and thefeature values in step 580, such as the color and size of the buttons,may be pre-determined, regardless of other features of the shirt, may bedirectly selected by the user, or may be assigned a default value thatbased on another feature, for example, on the color of the front bodyportion of the shirt.

It should be noted that FIG. 3 illustrates an implementation thatembodies a special case of the general process described in FIG. 5. InFIG. 3, the garment category is a shirt, with predetermined cuts forrespective features of the shirt when applicable. Thus, in this example,the only aspect that needs a design is the set of fabrics to be used forthe different parts of the shirt. In the context for FIG. 5, steps 302and 304 are used to retrieve user data from third-party data sources,which are data-rich services that the user has accounts with. Retrieveduser data may include one or more of Google Email, Facebook photos,Facebook timeline events, Facebook friends, Instagram photos, YouTubevideos, Tumblr blogs, Linkedln professional profile, and Linkedlnconnections. Such user data may comprise a direct garment category inputhaving the value of “shirt.” Step 306 lists specific user signals thatmay be extracted from the user data. Steps 308 and 310 provide aspecific two-step process for determining fabric scores, as in step 575.A limited number of candidate fabric values are retrieved in step 308,based on a distance metric between the user signals and some fabricsignals. Determining the association between user signals and fabricsignals may be viewed as the process of determining fabric scores. Forexample, at step 308, user and fabric signals may both be normalized toa maximum value of 100, and a single pair of same or similar user signaland fabric signals, for example, happiness signals, may be compared tosee if they are within some distance threshold, such as 10. For anyfabric with a fabric signal within 10 units of the user signals, anassociation may be created at step 310 and a corresponding fabric scoremay be established, where a distance of 0 may be converted to a fabricscore of 100 indicating a perfect match or association, and a distanceof 10 may be converted to a fabric score of 50 indicating a mediocrematch or association.

In some embodiments, there may be many different user and fabricsignals, including but not limited to, user or fabric happiness signal,funkiness signal, intellectuality signal, colorfulness signal,complexity signal, conservativeness, and adventurousness signal. At step310, the system may create associations based on signal distances, andgenerate a score for each queried or retrieved fabric by weighing thedegrees of association between corresponding pairs of user and fabricsignals. For example, a fabric score may be computed based on distancesbetween pairs of user and fabric happiness and conservativeness signals,where the weighting for happiness vs. conservativeness may be 0.5 and0.5, 0.8 and 0.2, or the like. Subsequent choosing of fabrics with highassociation strength and weights is equivalent to choosing fabrics withhigh fabric scores.

In another illustrative example where there are five pairs of user andfabric signals, an equal weighting of 0.2 is equivalent to taking anaverage. In case when no corresponding fabric signal is available for auser signal, the system may adjust the weighting so the unmatched pairhas a zero weighting. For example, if no fabric intellectual signal isavailable while a user intellectual signal has been determined, theother four pairs of user and fabric signals may each be reassigned a newweighting of 0.25. Alternatively, a pair of user and fabric signalswhere the user signal value is very high may be reassigned a largerweighting, such as 0.4, while others are maintained at 0.2. Apart fromthese two variations, fabric scores may be calculated from user data,user signal, and various other signals in similar ways.

Steps 312 and 314 are a special case of step 585. In this case, afeature set having three fabrics is formed by choosing top-scoredfabrics, where a feature set score may be computed by averaging thefabric scores, but with 0 inter-fabric adjustments. In other words, nointer-fabric adjustments are performed. In the more general scenarioshown in FIG. 5, Inter-fabric adjustments or inter-cut adjustments mayindicate which fabrics and/or cuts look good together, with positivescore adjustments awarded to pleasing combinations and negative scoreadjustments for ill-matched combinations according to some metric orpublic data. For example, black- and white-colored fabrics may beassociated with a positive adjustment value of 5, purple and gold may beassociated with another positive adjustment value of 3, while red andgreen may be associated with a negative adjustment value of −5. Eventhough inter-fabric score adjustments are listed in a pair-wise fashionin this example, in some embodiments, such score adjustment ay bespecified for other tuples of fabrics, or in terms of logical conditionson the available fabric characterizes.

In step 314, all three-tuple fabric combinations or sets may bepresented to the user for purchase. In some embodiments, only Ncombinations having top feature set scores may be presented, where N maybe determined by the user of the system. In the more general embodimentillustrated by FIG. 5, such ranking of fabric combinations or featuresets is performed at step 595.

As previously discussed, in some embodiments, received user data maycomprise an explicit textual statement indicating a preferred garmentcategory for which a customized garment is to be designed. In othercases, for example when only graphical data are available, computervision algorithms may be performed at step 540 by the system toidentified the preferred garment category.

Correspondingly, FIG. 6 is a flowchart 600 describing an illustrativealgorithm or garment classification given a photograph showing a garmentof interest by the user, which may be provided by direct user input orby automatic retrieval from social media, according to one embodiment ofthe invention. Assume the photograph shows an image of the user wearinga favorite garment, for which a similar garment is to be designed. Uponinitiation at step 610, the system may perform edge detection to removean image background at step 620, leaving only portions of the image thatshows the user. Next at step 630, the system may perform human detectionby search for the face, hands and feet, and/or skin areas on the limbs.Upon detecting parts of the user not covered by the garment, such partsmay be masked. Thereafter, the system may analyze what remains in thephoto, which contains the garment only, to perform a machine learninganalysis for classifying the garment into a category or sub-category atstep 640. The overall process terminates at step 690. In someembodiments, upon determining the category for the garment in a photo,the system may proceed to identify features of the garment. In someembodiments, garment categorization may alternatively be done by firstdetermining cuts and features of the garment.

In FIG. 6, edge detection, human detection, and garment detection mayeach be viewed as special cases of object recognition, patternrecognition, and feature extraction algorithms from the field of machinelearning and imaging processing. Such algorithms are well known in theart. For example, machine learning techniques such as decision trees maybe utilized to determine whether a garment is a dress or a suit. Thesystem may also further identify a garment sub-category or garment stylewithin the garment category for generating the customized garmentdesign.

More specifically, the system may determine a garment category first byclustering or other machine learning techniques. Training sets withphotos of garments of various shapes may be fed into the system so thatit learns to categorize the garments by experience with training data.For example, the system may recognize a dress shirt to be the garment inthe photo at hand. Once the garment category is determined, features ofthe garment may be detected subsequently. For example, once it isdetermined that the garment at hand is a dress shirt, it is known thatseveral features must exist, including collar, cuff, and sleeves, etc.The system may hone in to these parts and identify, for example, thatthe collar has a button-down cut. The system may also detect that thefabric is a violet silk. By analyzing the photos provided by the user,the system may identify not only the garment category the user isinterested in, but his preferences for colors and textures of fabrics aswell as style. The system may also be able to analyze whether the useris looking for formal attire for business or for partying, by analyzinghow traditional or bold the various features like cuts and fabrics are.Numerical values for user signals like funkiness may be assignedaccordingly.

Another route to categorize a pictured piece of garment is bydetermining the features first and then coming up with the category. Forexample, the system may be acquainted with shapes of garment parts likeskirts, sleeves, collars, etc. By identifying different parts of agarment, for example, the presence of collars, buttons down the middle,long sleeves, cuffs, and no sign of pants or a skirt, the system mayrecognize from an internal database or public data containing a simplelist of parts of various types of garments, that the garment pictured isa dress shirt. In this second approach, features are readily availablefor analysis by the time the garment is categorized.

FIG. 7 is an illustrative diagram 700 showing exemplary garmentcategories and sub-categories that garments may be classified into,according to one embodiment of the present invention. For example,garment categories 710 may include shirt 720, outerwear 730, dress 740,and pants 750. Each category may further branch out into sub-categories.Such subcategories ma may be based on function or occasion. For example,under dress category 740, exemplary sub-categories include, but are notlimited to, cocktail dress 742. casual dress 744, and ball gown 746.Alternatively, the sub-categories may be based on style, for example,under shirt category 720, there may be sub-categories Oxford shirt 722,Tuxedo shirt 724, and dress shirt 726. The sub-categories may also beclassified based on a mix of function and style. For example, under pantcategory 750, there may be sub-categories jeans 752, dress pants 754,slacks 756, and shorts 758.

There may sometimes even be more refined sub-categories, which may becalled micro-categories. For example, different dresses have differentoverall shapes, and such a shape is called the “silhouette” of a dress.FIG. 8 is an illustrative diagram showing micro-categories of dresseswith different silhouettes, such as sheath 810 and princess 820. Eachmicro-category of a given category of garment may have some necessaryand optional parts, with corresponding features. In some embodiments,the system may populate the cut and fabric variables, or featurevariables for these features at step 570, 575, and 580 of the processshown in FIG. 5, thereby determining a set of candidate cut, candidatefabric, and candidate feature values, and assigning scores for valuesfor these variables using all available signals. In some embodiments,garment category, sub-category, or micro-categories may be presented tothe user, who in turn may be prompted to select preferred ones forcustomized garment design generation.

FIG. 9 illustrates parts or features of a dress, according to oneembodiment of the present invention. This depiction is intended forillustrative purposes only, and does not cover all styles of dressed.Shown in FIG. 9 are necessary features such as neckline 910 and skirt970, and optional features such as a sash 960. For other dresses, theremay be optional features such as a lace frill in its hemline. Noticethat the dress does not have to be made in one single fabric. The systemmay come up with a feature set where sleeves 920 have a sheer greychiffon fabric, the bodice part consisting of center front 930 has awhite silk fabric with baby blue dots, skirt 970 has a navy-blue organzafabric, and belt 960 is made of a rope braided with grey and blue silkthreads.

FIG. 10 is an illustration of labelled parts of the bodice of a dress,such as shoulder seam 1010, apex 1040, and waistline 1070. Some finerdivisions of features shown in FIG. 10 may be optional. For example,princess seam 1060 may not exist in every dress. Each of these featuresin FIGS. 9 and 10 may have cut variables and fabric variables associatedwith them, or other feature value(s) associated with them, for example,a decorative pocket in the skirt may be associated with a position,depth, and a particular style of lacings.

FIG. 11 illustrates some commonly found styles for the necklines ofdresses, and these styles, such as sweetheart 1110 and V-neck 1120, areexamples of cut values that may populate the cut variable for a feature“neckline”.

As another specific example of garment features, recall from FIG. 4Athat a shirt necessarily has a collar 404 and a cuff 406, andoptionally, decorative embroidery details on the pocket. The collar is afeature that has a cut attribute or variable, which may take cut valuesof, for example, spread, forward-point, club, cutaway, to name just afew. The cuff as a feature may have a cut attribute or variable thattakes cut values such as round, square, Portofino, French, for instance.The fabric variable for any structural feature such as the collar andthe cuff may take values such as “white cotton” and “blue-green plaidflannel.” These are features of the first type as previously discussed.Features of the second type have no associated cut or fabric, and may bea decorative accessory or a necessary part such as a button, whosefeature variable may take as its value a description of style such as“small, circular, black, to be sewn onto the cuff”.

As another illustrative example of the garment design process, considerthe case where an input of three dresses of very different structuralshapes or cuts are received as user or public data, the system mayoutput a design that has intermediate cut features, which may involve anelement of surprise by mixing and matching styles, but still inaccordance with user preferences. Given an input of four shirts withsimilar cuts but different fabrics, the system may generate a shirt witha similar cut but with a completely different fabric that still has ahigh score according to user signals, and may generate another optionwhich has different fabrics in different areas. This is a veryconvenient way of generating brand new designs in a smart and automaticway.

Sophisticated designs may be achieved with embodiments of the presentinvention by means of score adjustments, which may be positive ornegative values added to the score of a feature set directly or withweightings. For example, the system may perform coordination of colorsand texture of fabrics as well as cuts by taking into account of colorsor types of fabrics that look good together, as captured by inter-fabricscore adjustments, colors that pair well with cuts, as captured bycut-fabric score adjustments, and fabrics that look good with otherfabrics, as captured by inter-fabric score adjustments. These scoreadjustments may be positive, negative, or zero, depending on whether therespective combination is favorable.

Other score adjustments may depend on one or more factors, includingcurrent fashion trend, whether particular cuts, colors, or fabrictextures are flattering or suitable for the function of the garment, thebody shape type of the user as captured by cut-bodytype scoreadjustments, fabric-bodytype score adjustments, and feature-bodytypescore adjustments, or the user's overall facial features including butnot limited to eye color, hair color, skin tone, facial bone structureand other facial features, as captured in cut-facial score adjustments,fabric-facial score adjustments, and feature-facial score adjustments.Again, these score adjustments may be positive, negative, or zero,depending on whether the combination is favorable and flattering or not,with positive values indicating good and flattering combinations.

For example, it may be known from public data that sweetheart and V-necknecklines, instead of cowl necklines, are flattering for a round face;bright blues, pinks, and purples are flattering for cool skintones, butnot oranges; clear, bright colors look good for deep blue eyes; andlinen and crisp cotton with bold patterns and prints or dark colors aresuited to fuller body shapes. Score adjustments may be made accordinglyfor a full-figured female with a round face, cool skin tone, black hair,and deep blue eyes. For a crisp cotton fabric with red and black largeprint linens, the fabric-bodytype score adjustment may be a largepositive number, for example, 8 out of 10, since both the texture, thecolors and pattern are suitable. Similarly, for a ponte fabric in alight pink, the fabric-bodytype score adjustment may be a positivenumber close to 0, such as 2, since the color is too light, but thetexture is great. A crepe fabric in solid bright orange may have afabric-bodytype score of a large negative number, for example, −10,since both the color and texture are unsuitable for the user.

Analogously, for the same user, a cut-facial score adjustment for V-neckmay be 6, and for cowl neckline, −5. The fabric-facial score adjustmentfor a flannel in deep turquoise may be 6 due to the color, but thefabric-bodytype score adjustment for the same fabric may be −9 due tothe stiff fabric, and these two score adjustments for the fabric may besimply added, or any large negative adjustments may be more stronglyweighted to avoid especially unflattering features.

Assuming the user prefers a dress with an asymmetric skirt as in theearlier example discussed with reference to of FIG. 5, where the userhas a user funkiness signal of 94. Then a dress with an asymmetric skirtmade of a crisp cotton fabric with royal blue and turquoise boldpatterns may have a fabric-bodytype score adjustment of 8, and afabric-facial score adjustment of 7, which together may increase thefeature set score to above 100. Such a feature set score may be cappedat 100, indicating that this is a very good design for the user.

There may be other ways to combine the scores, for example, by weightingvery negative score adjustments more strongly, to avoid especiallyunflattering combinations. In another example, a black asymmetric dressmay have an initial feature set score of 60, but because of positivescore adjustments for being flattering for a full body type and roundface, with +9 for fabric-bodytype score adjustment, and +7 forfabric-facial score adjustment, the feature set score ends up being 76if the adjustments are combined with the initial feature set score bysimple addition.

So far, design of the customized garment has been focused on the look ofthe garment. In what follows, methods and systems are describes formaking the customized garment with size and fit that are best tailoredto the user. Thus, embodiments of the present invention provide the userwith a uniquely designed garment in accordance to his or herpreferences, facial features and body traits, and tailored to his or herbody measurements. Garment sizing information may be obtained directlyfrom a user, from a professional tailor, by algorithmic analysis ofanswers to questions from the user, or algorithmic analysis of userphotos showing a reference garment and a scale reference.

Exemplary Implementation of the Customized Garment Design System

FIG. 12 is an illustrative schematic diagram for a customized garmentdesign and manufacture system, according to one embodiment of thepresent invention.

In FIG. 12, system or environment 1200 comprises data store 1215,measurement-from-photo engine 1212, custom design network or server1222, digital camera 1232 and computing device 1255 which may be used toaccess a web browser 1265, a mobile application 1275 and a localapplication 1285. System 1200 may also include a pattern generator frommeasurements 1216, a garment manufacturing network 1226, a cloth cuttingfrom patterns controller 1236 and one or more cloth cutting machines1276. In one example, cloth cutting machines 1276 may include multi-plyconveyorized cutting, single-ply conveyorized cutting and single-plystatic cutting machines by Gerber Technology. In another example, clothcutting machines 1276 may be Shima Seiki multi-ply cutting machines, oranother cutting machine.

Digital camera 1232 is usable to capture images of garments such as areference garment, and may be a stand-alone camera or part of anotherdevice, such as an Internet-connected computing device with a camera,such as what is commonly presently referred to as a smart phone,including, for example, an iPhone® from Apple Computer and Android-basedphones from Samsung and LG. Other devices such as tablets are alsousable to capture and transfer an image of a reference garment. Theimage can be delivered on paper and re-digitized or deliveredelectronically. In some embodiments, digital camera 1232 is part ofcomputing device 1255.

Measurement-from-photo engine 1212 generates measurements based onimages of garments received from digital camera 1232 as described later.The measurements may be stored in data store 1215, and may betransferred from measurement-from-photo engine 1212. In someimplementations, measurement-from-photo engine 1212 is a module withincustom design network 1222. In some implementations,measurement-from-photo engine 1212 is a local application 1285 oncomputing device 1255. Thus, measurements from a reference photo may bemade by a user device used to capture the image, by a user device usedto upload the image to a design server, or by the design server itself.

Data store 1215 may include primary signals; cut, fabric, feature valuesand scores; as well as feature set values and scores. It may alsoinclude measurements for an assortment of garments such as pants,shirts, blazes, jackets, sweaters, T-shirts, polo shirts, dresses, shoesand boots. Data store 1215 may be implemented using a general-purposedistributed memory caching system. In some implementations, data store1215 may store information from one or more garment engineers intotables of a common database image to form an on-demand database service(ODDS), which can be implemented in many ways, such as a multi-tenantdatabase system (MTDS). A database image can include one or moredatabase objects. In other implementations, the databases can berelational database management systems (RDBMSs), object orienteddatabase management systems (OODBMSs), distributed file systems (DFS),no-schema database, or any other data storing systems or computingdevices.

In some embodiments, pattern generator from measurements 1216 may acceptgarment distance measurements via garment manufacturing network 1226,for generating patterns for making the customized garment. In someembodiments, pattern generator from measurements 1216 may providepatterns to custom design network 1222, as fabric choices for generatingcustomized garment designs. In some embodiments, custom cloth cuttingfrom patterns controller 1236 may control cloth cutting machine 1276 tocut cloth using garment distance measurements received for the favoritegarment.

The raw image of the garment from digital camera 1232 may be imported oruploaded to a computer-based system using one of multiple transfertechnologies including but not limited to direct image upload, textmessage, email or social media message: via a Wi-Fi hotspot or anetwork. The raw image could be captured from a garment or from aprinted picture of a garment, with the raw image including the garmentand a scale reference, such as an A4 sheet of paper.

In some embodiment, custom design network or server 1222 providescustomized garment design generation services, using systems and methodsas described with reference to FIGS. 1 to 11. One or more componentsshown in FIG. 12 may be implemented as individual modules within customdesign network 1222. For example, measurement from photo engine 1212,data store 1215, and digital camera 1232. Alternatively, such componentsmay be implemented locally within computing device 1255.

Custom design network or server 1222 and garment manufacturing network1226 may each be any network or combination of networks of computingdevices that communicate with one another. For example, custom designnetwork 1222 and garment manufacturing network 1226 may be implementedusing one or any combination of general purpose processors, ASIC or RISCprocessors, memories, storage units, data bus links, a LAN (local areanetwork), WAN (wide area network), telephone network (Public SwitchedTelephone Network (PSTN), Session Initiation Protocol (SIP), 3G, 4GLTE), wireless network, point-to-point network, star network, token ringnetwork, hub network, WiMAX, Wi-Fi, peer-to-peer connections likeBluetooth, Near Field Communication (NFC), Z-Wave, ZigBee, or otherappropriate configuration of data networks, including the Internet. Inother implementations, other networks may be used such as an intranet,an extranet, a virtual private network (VPN), a non-TCP/IP basednetwork, any LAN or WAN or the like.

Similar to user input device 118 shown in FIG. 1, computing device 1255provides an interface to interact with the user, receive user inputs,and display design output to the user. In some embodiments, thecustomized garment design process may be performed locally on computingdevice 1255, where custom design network 1222 provides networkcommunication services to other modules shown in FIG. 12. In someembodiments, part of the customized garment design process may beperformed locally on computing device 1255, while other parts areperformed on a networked server located within custom design network1222. For example, computing device may analyze an input data todetermine a preferred garment category, while custom design network 1222may perform other necessary steps discussed with reference to FIG. 5.The division of functions between computing device 1255 and customdesign network 1222 is an implementation choice, and does not limit thescope of the present invention.

Thus, the present invention may be implemented in a client serverenvironment. In some embodiments, the entire system may be implementedand offered to end-users and/or operators over the Internet, in a cloudimplementation. No local installation of software or hardware would beneeded, and the end-users and operators would be allowed access to thesystems of the present invention directly over the Internet, usingeither a web browser such as 1265, or similar software on a client,which client could be a desktop, laptop, mobile device, and so on. Thiseliminates any need for custom software installation on the client sideand increases the flexibility of delivery of the service(software-as-a-service), and increases user satisfaction and ease ofuse. Various business models, revenue models, and delivery mechanismsfor the present invention are envisioned, and are all to be consideredwithin the scope of the present invention.

In general, the method executed to implement the embodiments of theinvention, may be implemented as part of an operating system or aspecific application, component, program, object, module or sequence ofinstructions referred to as “computer program(s)” or “computer code(s).”The computer programs typically comprise one or more instructions set atvarious times in various memory and storage devices in a computer, andthat, when read and executed by one or more processors in a computer,cause the computer to perform operations necessary to execute elementsinvolving the various aspects of the invention. Moreover, while theinvention has been described in the context of fully functioningcomputers and computer systems, those skilled in the art will appreciatethat the various embodiments of the invention are capable of beingdistributed as a program product in a variety of forms, and that theinvention applies equally regardless of the particular type of machineor computer-readable media used to actually effect the distribution.Examples of computer-readable media include but are not limited torecordable type media such as volatile and non-volatile memory devices,floppy and other removable disks, hard disk drives, optical disks (e.g.,Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks,(DVDs), etc.), and digital and analog communication media.

Customization for Garment Sizing and Measurements

To obtain sizing information for the desired customized garment design,the most straightforward way is to receive user body measurements orgarment measurements through direct user input. Body measurementinformation may alternatively be obtained from three-dimensional bodyscanning, algorithmic computation based on answers to questions from theuser, algorithmic computation based on a user photo, and transfer ofdata from a professional tailor. Similarly, garment measurements mayalternatively be obtained from algorithmic computation based on answersto questions from the user, algorithmic computation based on a userphoto, and transfer of data from a professional tailor.

In some embodiments, garment measurements may be obtained by making useof the fact that individuals often already own a garment that fits themextremely well, and may be used as a reference for making new garmentsthat fits equally well. Such a garment may be referred to as a“reference garment,” “favorite garment,” “best-fit garment” or a“preferred garment.” In some embodiments, a user may measure thereference garment manually and upload the collected measurements to thecustomized garment design system. However, this is a time-consuming andlikely inaccurate process. Instead, in some embodiments, the user mayprovide photos of one or more reference garments. One aspect of thepresent invention relates to the recognition that all information acustomized garment design system or custom clothing manufacturer needsto create a garment with a fit based upon the reference garment may beprovided by an image of the garment, and a scale reference. The scalereference not only provides dimensional information but also permitsperspective correction to be applied to the user-generated image.

Embodiments of the present invention may replicate such a reference orfavorite garment using the general process described in FIG. 5. In somecases, embodiments of the present invention may replicate not only thestyle, but also the fit and sizing of a favorite garment, possibly inits entirely, or by modifying only certain aspects of the garment, forexample, changing a fabric color while keeping the same cut as before.The idea of a favorite garment with a best-fit also complements the ideaabout a preferred cut: a user may prefer a certain cut of a specificfeature because that cut is flattering to his or her body shape. Forexample, a pear-shaped user may prefer A-line skirts to pencil skirtsbecause A-line skirts are more slimming for the figure. In what follows,the process of determining garment measurements from an input photo of afavorite garment is discussed.

FIG. 13 illustrates a raw image 1300 of a favorite garment 1312 with ascale reference being provided by a reference rectangle 1314 in the rawimage, according to one embodiment of the present invention. In thisexample, image 1300 may be captured by the owner of the garment. Theowner may consider it a favorite garment because the owner likes the wayit looks, feels, and fits. The owner would like another garment madewhich provides the same fit as the favorite garment. In this example,raw image 1300 was captured using a camera, capable of being connectedto the Internet for transfer of images, to facilitate transfer ofmeasurements of the favorite garment to a custom clothing manufacturer.

In preparation for capturing an image of the favorite garment, arectangular reference object, for example an 8.5×11 sheet of paper or acredit card, may be placed on or in near proximity to the garment. Rawimage 1300 in FIG. 13 includes the image of reference rectangle 1314.Reference rectangle 1314 in raw image 1300 is shown as a non-rectangularquadrilateral due to the orientation at which raw image 1300 wascaptured. In this example, reference rectangle 1314 is placed on garment1312; it could also be placed only partially on garment 1312 or it couldbe positioned separate from, but near, garment 1312 so that it remainswithin raw image 1300. As is evident in FIG. 13, the shape of referencerectangle 1314 in FIG. 13 is a non-rectangular quadrilateral because ofthe non-perfect, skewed orientation at which the image of garment 1312was captured. In this example, reference rectangle 1314 acts as a scalereference.

Perspective correction of the raw image results in an adjusted imagethat includes the scale reference viewable as a true rectangle, aquadrilateral with four right angles, and is rotated relative to the rawimage. FIG. 14 illustrates adjusted image 1400 of garment 1312 of FIG.13. Reference rectangle 1414 in FIG. 14 is shown as a true rectanglewith opposite sides being the same length and with 90° angles at itscorners—the scale reference.

In one example, to reproduce a favorite shirt, up to twelve differentmeasurements may be made available. These measurements may include, butare not limited to collar, shoulder, left sleeve, right sleeve, chest,waist, hip, length, left cuff, right cuff, left bicep, and right bicep.

FIG. 14 illustrates screen capture 1400 of a screen 1413 showing anadjusted image 1405 of the favorite shirt, together with exemplary linemeasurement tools, created by using the scale reference and a hardwareprocessor and applying perspective correction, the reference rectanglebeing shown as a true rectangle through the application of perspectivecorrection. Screen 1413 may be displayed on a user device or an operatordevice in different embodiments of the present invention. The user, asystem operator, or a garment engineer may position the ends of the linemeasurement tool on measurement reference positions on the adjustedimage of the garment. FIG. 14 also shows measurement lines terminatingat measurement reference positions on the adjusted image, according toone embodiment of the present invention. FIG. 14 also includes twoexamples of line measurement tools: a straight-line measurement tool1418 and a curved-line measurement tool 1420. Line measurement tools1418, 1420 are used to connect pairs of measurement reference positions1424A, 1424B, 1424C, 1424D, 1424E (denoted by open circles) withmeasurement lines. In this example, twelve different measurement linesare created. Curved line measurement tool 1420 is used to create collarmeasurement line 1426. Straight line measurement tool 1418 is used tocreate each of the following measurement lines: shoulder measurementline 1428, left sleeve measurement line 1430, right sleeve measurementline 1432, chest measurement line 1434, waist measurement line 1436, hipmeasurement line 1438, length measurement line 1440, left cuffmeasurement line 1442, left cuff diameter 1443, right cuff measurementline 1444, left cuff diameter 1445, left bicep measurement line 1446,and right bicep measurement line 1448. A greater or lesser number ofmeasurement lines and different measurement lines can be used accordingto the particular type or style of the garment. The selection of themeasurement reference positions 1424A, 1424B, 1424C, 1424D, 1424E(denoted by open circles) for the measurement lines may depend in largepart on the patternmaking software used with the equipment, typically afabric cutting machine, used in creating the garment.

The size and aspect ratio of the reference rectangle may be determinedvia different approaches, explicit or automatically determined. A useror operator may identify the reference rectangle used, such as an A4 or8.5×11 paper or other object, a 3×5 notecard, or a ISO/IEC standarddimension credit card. Such input may be collected via input menu itemssuch as “Upload Letter” icon 1415. A rectangle scoring algorithm,further described later, may find the explicitly identified rectangle.That is, the measurement-from-photo engine 1212 may receive dimensionsof the reference rectangle. Another option would be to allow thesoftware to guess/determine the size of the reference rectangle basedupon characteristics of the captured image when compared to a data storeof common document sizes. Multiple rectangles in a picture can be found,one selected and its dimensions deduced from a list of alloweddimensions and aspect ratios. Or, the size and rounded corners as wellas any text or logo on the reference rectangle could indicate that it isa credit card. In one use case, the customer could select from asupplied list of common items which could be used as a referencerectangle, such as a credit card, a dollar bill, or a sheet of standardsized paper.

In one implementation, the transformation from the raw image shown inFIG. 13 to the adjusted image of FIG. 14, which shows perspectivecorrection, includes receiving the raw image of a garment and a scalereference, and recognizing the scale reference.

Using the scale reference and a hardware processor, perspectivecorrection gets applied to adjust the raw image and produce an adjustedimage. In one implementation, an open source library of programmingfunctions and methods, such as CV2 provided by OpenCV(http://opencv.org/), can be used to implement the steps in the process,which includes locating perspectives of rectangles in the raw image,scoring the figures located to identify a quadrilateral that correspondsto the reference rectangle, and completing a four point transform ofpoints in the located quadrilateral to form a rectangle with rightangles at the corners. A Gaussian blur algorithm can be used to reduceimage noise.

Using the dimensions of the adjusted image the set of destination pointscan be constructed to obtain a bird's eye view, or a top-down view, ofthe image, after finding squares in the image by searching forfour-sided contours, and then scoring and sorting the contours relativeto a variety of factors including aspect ratio with respect to theoverall image. In some cases, the search for squares can be challengingdue to the existence of checkerboard patterns in the surface on whichthe favorite garment rested when the image was captured, or if thefavorite garment includes a plaid pattern in the fabric. Continuing withthe perspective correction process, after finding, scoring and sortingthe contours, the resulting aspect ratio constraint is usable to producean adjusted image.

The width of adjusted image 1400 is computed as the maximum distancebetween the bottom-right and bottom-left x-coordinates and the top-rightand top-left x-coordinates. The height of the adjusted image is computedas the maximum distance between the top-right and bottom-rightcoordinates y-coordinates and the top-left and bottom-lefty-coordinates.

Using the adjusted image in conjunction with a straight-line measurementtool and a curved-line measurement tool such as those shown in FIG. 14,the scale of the scale reference may be determined and is usable with aline measurement tool.

The adjusted image and the line measurement tool may be displayed on adisplay. The user, a system operator, or a garment engineer may positionthe ends of the line measurement tool on measurement reference positionson the adjusted image of the garment; and the garment distance betweenthe measurement reference positions on the adjusted image of the garmentmay be generated using the line measurement tool. After repeating theprocess of receiving n positions for the ends of the line measurementtool, and generating the n+1 garment distances, the resultingmeasurements may be stored in garment distances data store 1215. Thegenerated garment distance measurements may also be provided to garmentmanufacturing network 1226, for generating patterns for making thefavorite garment, or to custom cloth cutting from patterns controller1236 for cutting cloth for the favorite shirt.

In some embodiments, the measurement-from-photo engine 1212 may measurea favorite garment first, and then adjust the perspective and transformthe garment distance parameters, as described next.

FIG. 15 shows a raw image of the favorite shirt with measurements 1500as it would be displayed on a screen 1513 of a display 1515, accordingto one embodiment of the present invention. FIG. 15 also includes twoexamples of line measurement tools: a straight-line measurement tool1518 and a curved-line measurement tool 1520. Line measurement tools1518, 1520 are used to connect pairs of measurement reference positions1524A, 1524B, 1524C, 1524D, 1524E (denoted by open circles) withmeasurement lines. In this example, twelve different measurement linesare created. Curved line measurement tool 1520 is used to create collarmeasurement line 1526. Straight line measurement tool 1518 is used tocreate each of the following measurement lines: shoulder measurementline 1528, left sleeve measurement line 1530, right sleeve measurementline 1532, chest measurement line 1534, waist measurement line 1536, hipmeasurement line 1538, length measurement line 1540, left cuffmeasurement line 1542, left cuff diameter 1543, right cuff measurementline 1544, left cuff diameter 1545, left bicep measurement line 1546,and right bicep measurement line 1548. A greater or lesser number ofmeasurement lines and different measurement lines can be used accordingto the particular type or style of the garment. The selection of themeasurement reference positions 1524A, 1524B, 1524C, 1524D, 1524E(denoted by open circles) for the measurement lines will depend in largepart on the patternmaking software used with the equipment, typically afabric cutting machine, used in creating the garment.

The measurement-from-photo engine 1212 mreceives a raw image of agarment 1312 and a scale reference 1314; causes display of the raw imageand a line measurement tool on a display 1515; receives user inputcomprising first and second points, that position ends of the linemeasurement tool on measurement reference positions on the raw image ofthe garment; and generates a pair of garment distance parameters basedon the measurement reference positions on the raw image of the garment.This method includes repeating the receiving user input and thegenerating garment distance parameters steps n times to generate atleast n+1 garment distances, with n being an integer equal to at leastthree. The measurement-from-photo engine 1212 may recognize the scalereference 1314 and, using the scale reference 1314, applies perspectivecorrection to adjust the raw image and produce an adjusted image; anddetermines a perspective corrected scale of the adjusted image from thescale reference for use producing garment distances. Then the garmentdistance parameters are transformed using the processor and theperspective corrected scale to produce garment distances; and thegarment distances are stored for use in producing a custom garment witha fit based on the garment in the raw image. In some use cases,generating a pair of garment distance parameters comprises generating adistance and an angle orientation of a segment between the ends of theline measurement tool.

In some embodiments, measurement-from-photo engine 1212 may adjust theperspective using measurements from stereographic images of a garmentand scale reference, as described next. In this scenario,measurement-from-photo engine 1212 receives first and second rawstereographic images of a garment, optionally including a scalereference, with an indication of lens system characteristics sufficientfor scaling a field of view in the raw stereographic images. Using ahardware processor, measurement-from-photo engine 1212 may determinedistances from the lens system to at least three points in the rawstereographic image pair and applies a perspective correction based onthe distances, to produce at least one adjusted image. A plane definedby the three points may be adjusted to be perpendicular to the view ofthe camera, between the camera and a reference point such as the centerof the raw image. The properties of the lens system may be used todetermine what a one percent, one pixel or one degree divergence fromthe center represents. Measurement-from-photo engine 1212 determines ascale of the adjusted image from at least one of the distances combinedwith the lens system characteristics for use with the line measurementtool; and causes display of the adjusted image and the line measurementtool on a display, such as a monitor or an optical head-mounteddisplay—in one example a virtual reality headset: Oculus Rift. Thestereo images can be used for perspective adjustment and a single,non-stereoscopic image used for measurement.

Distance to three points on a plane may be alternatively be determinedusing an image and accompanying depth map from a so-calledtime-of-flight camera. The depth map allows selection of three or morepoints in the image to define (or over-define) a plane. The perspectivecorrection may proceed as described earlier, based on the three points.Information about the lens system is used by the time-of-flight camerawhen preparing the depth map. The scale of the image may be determinedby combining the depth map with the reasonable assumption that thegarment has been positioned on a flat surface. For a discussion ofalternative approaches to determining positions in 3D imaging, see,e.g., Larry Li, “Time-of-Flight Camera—An Introduction”, Technical WhitePaper SLOA 190B (rev. May 2014) <accessed athttp://www.ti.com/lit/wp/sloa190b/sloa190b.pdf on Apr. 25, 2016>, whichis incorporated by reference herein.

The stereographic image-based method includes measurement-from-photoengine 1212 receiving user input that positions ends of the linemeasurement tool on measurement reference positions on the adjustedimage of the garment; and generating a garment distance between themeasurement reference positions on the adjusted image of the garmentusing the line measurement tool; and repeating the receiving user inputand garment distance generating steps n times to generate n+1 garmentdistances, with n equal to at least three. The generated garmentdistances can be stored for use in producing a custom garment with a fitbased on the garment in the raw image, similar to methods describedearlier.

In another use case, the generation of garment distance parameters basedon the measurement reference positions on the raw image displayed fromthe stereographic images may be completed, and then the perspective maybe transformed using a hardware processor. Distances from the lenssystem to at least three points in the raw stereographic images may bedetermined, and a perspective correction based on the distances may beapplied, to produce at least one adjusted image. For lineartransformations, photo perspective and scale, order and number of lineartransformations applied is changeable without affecting the outcome. Asdescribed for earlier use cases, garment distances can be stored for usein producing a custom garment with a fit based on the garment in the rawimage.

Some embodiments may include a method of submitting a template formanufacture of a custom garment comprising arranging a garment in adisplay orientation; placing a reference rectangle on or near thegarment in the display orientation; capturing a raw image of the garmenttogether with the reference rectangle, the raw image having aperspective; electronically submitting the raw image to a customclothing manufacturing process with an identification of the referencerectangle sufficient for scaling of the reference rectangle in aperspective-adjusted version of the raw image.

For other embodiments, the method may include submitting a template formanufacture of a custom garment including arranging a garment in adisplay orientation; capturing a pair of raw stereographic images of thegarment through a lens system, the raw images having a perspective;electronically submitting the raw stereographic images to a customclothing manufacturing process with an identification of opticalcharacteristics of the lens system sufficient for scaling a field ofview in the raw stereographic images to produce a perspective-adjustedand scaled version of the raw stereographic images.

In another embodiment or implementation of the disclosed technology, thedisclosed method for determining measurements for clothing may beutilized for quality control purposes. For example, a manufacturingcompany that employs quality control for ensuring standard dimensionsand tolerances in their produced garments may use the measured garmentdistances to verify that batches of garments meet the requiredtolerances for standard, pre-defined size measurements. For some usecases, garment manufacturers can implement automated sizing on newlycompleted garments before they ship the garments to customers.

Another use case for the disclosed technology includes a commercialdistributor of garments who determines the best standard sizing todistribute to the shopper, based on the measurements determined for theimage of the garment provided to the distributor by the shopper. In oneexample, a distributor may confirm that the dimensions measured, of thegarment distances from the garment image submitted by the shopper, aresufficient for a slim fit, a regular fit, a plus size, a petite size ora tall fit.

System Flow

FIG. 16 shows an illustrative flowchart 1600 for an example workflow fordetermining measurements for custom clothing manufacture. Flowchart 1600may be implemented at least partially with a database system, e.g., byone or more processors configured to receive or retrieve information,process the information, store results, and transmit the results. Otherimplementations may perform the steps in different orders and/or withdifferent, fewer or additional steps than the ones illustrated in FIG.16. The actions described later can be subdivided into more steps orcombined into fewer steps to carry out the method described using adifferent number or arrangement of steps.

In some cases, as the reader will appreciate, a re-arrangement of stepswill achieve the same results only if certain other changes are made aswell. In other cases, as the reader will appreciate, a re-arrangement ofsteps will achieve the same results only if certain conditions aresatisfied. Furthermore, it will be appreciated that the flow chartsherein show only steps that are pertinent to an understanding of theinvention, and it will be understood that numerous additional steps foraccomplishing other functions can be performed before, after and betweenthose shown.

Upon initialization at step 1605, measurement-from-photo engine 1212first receives a raw image of a garment and a scale reference at step1610, and recognizes the scale reference.

At step 1620, measurement-from-photo engine 1212 uses the scalereference and a hardware processor to apply perspective correction toadjust the raw image and produce an adjusted image.

At step 1630, measurement-from-photo engine 1212 determines a scale ofthe adjusted image from the scale reference for use with a linemeasurement tool, and causes display of the adjusted image and the linemeasurement tool on a display device.

At step 1640, measurement-from-photo engine 1212 receives user inputthat positions ends of the line measurement tool on measurementreference positions on the adjusted image of the garment.

At step 1650, measurement-from-photo engine 1212 generates a garmentdistance between the measurement reference positions on the adjustedimage of the garment using the line measurement tool.

At step 1660, measurement-from-photo engine 1212 repeats the receivinguser input and the garment distance generating steps n times to generateat least n+1 garment distances, n being an integer equal to at least 3.

At step 1670, the measurement-from-photo engine 1212 stores the at leastn+1 garment distances for use in producing a custom garment with a fitbased on the garment in the raw image. The overall process terminates atstep 1690.

Scale Reference Recognition

As discussed previously, a scale reference such as 1314 may be detectedand recognized from a user-loaded raw image for perspective correction,adjustment of the raw image, and determination of aperspective-corrected scale of the adjusted image for garment sizingdistance measurements. In some embodiments, scale reference detectionand recognition may be carried out manually, where a user or operatormay identify the four corners of the scale reference object, while alsoproviding dimension information for the object. In some embodiments,scale reference recognition may be carried out automatically viacomputer vision algorithms that analyze changes in color, intensity,brightness, or other similar metrics to identify edges, boundaries,corners, and dimensions of the scale reference object. For example, thesystem may first run an edge detection algorithm to identify a set ofboundaries for objects present in the image, then an object detectionalgorithm to identify a quadrilateral present in the image as the scalereference.

These edge and object detection algorithms may perform especially wellwhen the scale reference is placed on a surface having a significantcolor or lighting contract, such as when a piece of white, letter-sizedpaper is placed against a dark-colored, or patterned garment. To ensurea white scale reference placed against a white or light-colored garmentcan also be recognized correctly, some embodiments of the presentinvention employ a shadow detection algorithm. As photos are generallytaken at an angle, rather than exactly parallel to the lens, shadows arecommonly present and utilized by embodiments of the present inventionfor scale reference object recognition.

Measurement Accuracy

To illustrate the accuracy level of customized garment sizingmeasurements achievable by embodiments of the present invention, Tables1, 2 and 3 below show comparisons of measurements on several testshirts. Tables 1 and 2 compare shirt measurements obtained by anembodiment of the present invention from a user-uploaded photo, tomeasurements obtained manually by the user from the shirt. In theuser-upload photo, the shirt is laid out as in FIG. 13, and a lettersized sheet of paper is placed against the shirt as a scale reference.Measurements are performed on different parts, or features of the shirt,including front body length, waist width, hip width, chest width, cuffwidth, collar circumference, bicep width, shoulder width, and sleevelength. Absolute values of the differences in measurements are shown asa deviation in Tables 1 and 2, and used to estimate the accuracy of themeasurements.

Measurements from a long-sleeved shirt, numbered Shirt 1, are shown inTable 1, while measurement from a short-sleeved shirt, numbered Shirt 2,are shown in Table 2. Shirt 2 does not have a cuff, although a cuffwidth may still be measured from the photo, at the distal edge of theshort sleeve. Also shown are average deviations and average accuracies.Both achieve accuracies within 97% of the manually measurement values.

TABLE 1 Comparison of measurements for a long sleeve shirt (Shirt 1)From Photo (in) From Shirt (in) Deviation (in) Accuracy Length 30.29 310.71 97.7% Waist 21.67 21.5 0.17 99.2% Hip 23.01 22.6 0.41 98.2% Chest22.28 22 0.28 98.7% Cuff (L) 4.52 4.25 0.27 93.7% Collar 15.87 16 0.1399.2% Bicep 8.19 8.5 0.31 96.4% Shoulder 19.22 19.5 0.28 98.6% Sleeve31.74 31 0.74 97.6% Average — — 0.05 97.7%

TABLE 2 Comparison of measurements for a short sleeve shirt (Shirt 2)From Photo (in) From Shirt (in) Deviation (in) Accuracy Length 31.79 320.21 99.3% Waist 19.47 19.85 0.38 98.1% Hip 20.96 21 0.04 99.8% Chest20.62 21 0.38 98.2% Cuff 7.23 — — — Collar 15.44 15.8 0.36 97.7% Bicep7.72 7.9 0.18 97.7% Shoulder 17.6 18 0.4 97.8% Sleeve 18.79 19 0.2198.9% Average — — 0.27 98.4%

Table 3 below compares measurement accuracies in percentages for 10different shirts of various color, pattern, size, and fit. Also listedare fabric characteristics including color and pattern for each shirt.Measurements for Shirt 1 (S1) and Shirt 2 (S2) are listed as well.

As can be seen from Table 3, measurement accuracies may be achieved forgreater than 93%, when averaged over different features for each shirt.On the other hand, cuff, collar, and bicep measurements are generallyslightly less accurate. For one, the relatively smaller dimension ofthese features translates to higher percentage errors when the sameamount of deviations is present, compared to other shirt features. Fortwo, features like collar circumference and bicep width are less welldefined than others when measured manually by hand. For three, as colorand shadow assist in the recognition of shirt features, either throughthe naked eye or through computer vision algorithms, light coloredshirts generally can be measured more accurately than dark coloredshirts.

TABLE 3 Percentage Accuracy of measurements from uploaded photos % S1 S2S3 S4 S5 S6 S7 S8 S9 S10 Color White/pink White/navy Gray Maroon BlackWhite/orange White White/blue Black Black Pattern Striped Plaid nonenone none checkered none stripe none none Length 97.7 99.3 98.1 99.199.0 98.1 98.1 98.7 99.7 96.0 Waist 99.2 98.1 97.3 98.8 97.8 99.2 99.298.7 98.5 99.5 Hip 98.2 99.8 98.3 95.2 98.3 97.9 97.9 98.5 92.3 99.1Chest 98.7 98.2 97.6 97.2 94.1 96.9 96.9 99.9 99.1 99.96 Cuff 93.7 —93.4 97.3 97.5 97.1 97.1 97.5 96.6 86.0 Collar 99.2 97.7 93.3 97.5 97.699.3 99.3 93.5 96.6 84.1 Bicep 96.4 97.7 95.4 96.3 94.0 94.9 94.9 77.184.4 89.4 Shoulder 98.6 97.8 98.0 99.6 98.6 98.6 98.6 98.8 98.5 92.2Sleeve 97.6 98.9 99.0 98.7 99.3 96.8 96.8 97.9 97.0 92.4 Average 97.798.4 96.7 97.7 97.4 97.7 97.7 95.6 95.9 93.2

Other Examples

FIG. 17 shows an adjusted image 1700 of a favorite pair of pants withmeasurements as it would be displayed on a screen 1713 of a display withdimensions useful for requesting a favorite pair of pants, together withexemplary line measurement tools, created by using the scale referenceand a hardware processor and applying perspective correction, thereference rectangle being shown as a true rectangle through theapplication of perspective correction, according to one embodiment ofthe present invention. Reference rectangle 1742 in FIG. 17 is shown as atrue rectangle with opposite sides being the same length and with 90°angles at its corners—the scale reference. Adjusted image FIG. 17 alsoincludes two examples of line measurement tools: a straight-linemeasurement tool 1714 and a curved-line measurement tool 1712. Asdescribed for the earlier example garment images, line measurement tools1712, 1714 are used to connect pairs of measurement reference positions.In this example, nine different measurement lines are created. Curvedline measurement tool 1712 is used to create waist measurement line1726. Straight line measurement tool 1714 is used to create each of thefollowing measurement lines: waist to crotch 1734, width at hips 1736,pant leg width at crotch 1746, pant leg width at thigh 1756, pant legwidth at knee 1766, pant leg width at bottom seam 1786, pant totallength 1768, and inseam length 1764. A greater or lesser number ofmeasurement lines and different measurement lines can be used accordingto the particular type or style of the garment.

FIG. 18 shows an adjusted image 1800 of a second style of favorite pairof pants with measurements as it would be displayed on a screen 1813 ofa display, with dimensions useful for requesting a favorite pair ofpants very different from the pair of pants displayed in FIG. 17.Reference rectangle 1842 in FIG. 18 is shown as a true rectangle withopposite sides being the same length and with 90° angles at its corners,the scale reference. Adjusted image FIG. 18 also includes two examplesof line measurement tools: a straight-line measurement tool 1814 and acurved-line measurement tool 1812. As described for the earlier examplegarment images, line measurement tools 1812, 1814 are used to connectpairs of measurement reference positions. In this example, curved linemeasurement tool 1812 is used to create the measurement for pocketstitching curvature 1836. Straight line measurement tool 1814 is used tocreate each of the following measurement lines: waist measurement line1826, waistband width 1828, waist to crotch 1834, width at hips 6836,pant leg width at crotch 1846, pant leg width at thigh 1856, pant legwidth at knee 1865, pant leg width at bottom seam 1886, pant totallength 1868, and inseam length 1864. Note that a comparison of therelative relationships between the measurements in the two pants figuresin FIG. 17 and FIG. 18 yield different design parameters.

FIG. 19 shows an adjusted image 1900 of a sneaker with measurements asit would be displayed on a screen 1913 of a display with dimensionsuseful for requesting a favorite pair of sneakers, together withexemplary line measurement tools, created by using the scale referenceand a hardware processor and applying perspective correction, thereference rectangle being shown as a true rectangle through theapplication of perspective correction, according to one embodiment ofthe present invention. Reference rectangle 1942 in FIG. 19 is shown as atrue rectangle with opposite sides being the same length and with 90°angles at its corners, the scale reference. Adjusted image FIG. 19 alsoincludes one example of line measurement tools: a straight-linemeasurement tool 1914. As described for the earlier example garmentimages, line measurement tools 1914 are used to connect pairs ofmeasurement reference positions. In this example, straight linemeasurement tool 1914 is used to create each of the followingmeasurement lines: shoe length 1920, a first width near the toe 1930, asecond width near the ball of the sole 1940, a third width just belowthe ball of the sole 1950, a fourth width just in front of the heel1960, a fifth width at the heel 1970, and a sixth width at the back ofthe heel 1980.

FIG. 20 shows an adjusted image 2000 of a pair of shorts withmeasurements as it would be displayed on a screen 2013 of a display withdimensions useful for requesting a favorite pair of shorts, according toone embodiment of the present invention. All measurements are analogousto the ones in the pants shown FIG. 18 except that short leg width atknee 2065 is already the width at the bottom seam, so that there is atotal of one measurement less than the case in FIG. 8.

FIG. 21 shows an adjusted image 2100 of a short-sleeved shirt withmeasurements as it would be displayed on a screen 2113 of a display withdimensions useful for requesting a favorite short sleeved shirt,according to one embodiment of the present invention. All themeasurements are analogous to the ones in shirt shown FIG. 15 exceptthat there is no left cuff measurement line or right cut measurementline here.

FIG. 22 shows an adjusted image 2200 of a suit jacket with measurementsas it would be displayed on a screen 2213 of a display with dimensionsuseful for requesting a favorite short sleeved shirt, according to oneembodiment of the present invention. All the measurements are analogousto the ones in shirt shown FIG. 15 except that the collar design isdifferent and collar measurement line 2226 is expected to be much largerthan that for a shirt. Another difference is that waist measurement line2236 is made from the side 2250 to the jacket opening 2255 instead of awaist measurement line across the whole garment as waist measurementline 1536 in FIG. 15.

FIG. 23 shows an adjusted image 2300 of a dress with measurements as itwould be displayed on a screen 2313 of a display with dimensions usefulfor requesting a favorite dress, according to one embodiment of thepresent invention. Reference rectangle 2342 in FIG. 23 is shown as atrue rectangle with opposite sides being the same length and with 90°angles at its corners, the scale reference. Adjusted image FIG. 23 alsoincludes two examples of line measurement tools: a straight-linemeasurement tool 2314 and a curved-line measurement tool 2312. Asdescribed for the earlier example garment images, line measurement tools2312, 2314 are used to connect pairs of measurement reference positions.In this example, curved line measurement tool 2312 is used to createcollar measurement line 2322 and armhole curvature 2324. Straight linemeasurement tool 2314 is used to create each of the followingmeasurement lines: left center-to-shoulder measurement line 2326, rightcenter-to-shoulder measurement line 2328, chest measurement line 2334,waist measurement line 2336, hip measurement line 2338, lengthmeasurement line 2340, and bottom hem measurement line 2348.

FIG. 24 shows a block diagram 2400 for an exemplary computer system 2410for implementing customized garment design and measurement methods asdisclosed herein, according to some embodiments of the presentinvention. Computer system 2410 may be adapted for use as user device118 in FIG. 1, computing device 1255 in FIG. 12, custom designnetwork/server 1222 in FIG. 12, or other appropriate stand-alone orintegrated modules and systems disclosed herein.

Computer system 2410 typically includes at least one processor 2472 thatcommunicates with a number of peripheral devices via bus subsystem 2450.Processor 2472 may be general purpose, or an ASIC or RISC processor. Itmay be an FPGA or other logic or gate array. It may include graphicprocessing unit (GPU) resources. Peripheral devices may include astorage subsystem 2426 including, for example, memory devices and a filestorage subsystem, user interface input devices 2438, user interfaceoutput devices 2478, and a network interface subsystem 2476. The inputand output devices allow user interaction with computer system 2410.Network interface subsystem 2476 provides an interface to outsidenetworks, including an interface to corresponding interface devices inother computer systems.

User interface input devices 2438 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a touch screen incorporated into the display, audio inputdevices such as voice recognition systems and microphones; and othertypes of input devices. In general, use of the term “input device” isintended to include the possible types of devices and ways to inputinformation into computer system 2410.

User interface output devices 2478 may include a display subsystem, aprinter, a fax machine, or non-visual displays such as audio outputdevices. The display subsystem may include a cathode ray tube (CRT), aflat-panel device such as a liquid crystal display (LCD), a projectiondevice, or some other mechanism for creating a visible image. Thedisplay subsystem may also provide a non-visual display such as audiooutput devices. In general, use of the term “output device” is intendedto include the possible types of devices and ways to output informationfrom computer system 2410 to the user or to another machine or computersystem.

Storage subsystem 2424 stores programming and data constructs thatprovide the functionality of some or all of the modules and methodsdescribed herein. These software modules are generally executed byprocessor 2472 alone or in combination with other processors.

Memory 2422 used in the storage subsystem can include a number ofmemories including a main random-access memory (RAM) 2434 for storage ofinstructions and data during program execution and a read only memory(ROM) 2432 in which fixed instructions are stored. A file storagesubsystem 2436 can provide persistent storage for program and datafiles, and may include a hard disk drive, a floppy disk drive along withassociated removable media, a CD-ROM drive, an optical drive, orremovable media cartridges. The modules implementing the functionalityof certain implementations may be stored by file storage subsystem 336in the storage subsystem 2426, or in other machines accessible by theprocessor.

Bus subsystem 2450 provides a mechanism for letting the variouscomponents and subsystems of computer system 240 communicate with eachother as intended. Although bus subsystem 2450 is shown schematically asa single bus, alternative implementations of the bus subsystem may usemultiple busses.

Computer system 2410 can be of varying types including a workstation,server, computing cluster, blade server, server farm, or any other dataprocessing system or computing device. Due to the ever-changing natureof computers and networks, the description of computer system 2410depicted in FIG. 24 is intended only as one example. Many otherconfigurations of computer system 2410 are possible having more or fewercomponents than the computer system depicted in FIG. 24.

Conclusions

One of ordinary skill in the art knows that the use cases, structures,schematics, and flow diagrams may be performed in other orders orcombinations, but the inventive concept of the present invention remainswithout departing from the broader scope of the invention. Everyembodiment may be unique, and methods/steps may be either shortened orlengthened, overlapped with the other activities, postponed, delayed,and continued after a time gap, such that every user is accommodated topractice the methods of the present invention.

Although the present invention has been described with reference tospecific exemplary embodiments, it will be evident that the variousmodification and changes can be made to these embodiments withoutdeparting from the broader scope of the invention. Accordingly, thespecification and drawings are to be regarded in an illustrative senserather than in a restrictive sense. It will also be apparent to theskilled artisan that the embodiments described above are specificexamples of a single broader invention which may have greater scope thanany of the singular descriptions taught. There may be many alterationsmade in the descriptions without departing from the scope of the presentinvention.

What is claimed is:
 1. A method for generating a customized garmentdesign, comprising: receiving user data about a user, from the user, orfrom a third-party data source; generating at least one user signal fromthe user data; identifying a preferred garment category by analyzing theuser data, wherein the preferred garment category describes at least onestyle for the customized garment design; retrieving public data relatedto the identified garment category; retrieving a first group and asecond group of features for the identified garment category from aninternal database, wherein each of the first group of features isassociated with a cut variable and a fabric variable; for each of thefirst group of features, identifying at least one preferred cut value,by analyzing the user data and the public data, wherein each preferredcut value is associated with a cut value score computed based on the atleast one user signal indicating an affinity to the user; for each ofthe first group of features, identifying at least one preferred fabricvalue, wherein each preferred fabric value is identified from a sourceselected from the group consisting of the user data, the internaldatabase, and the public data, and wherein each preferred fabric valueis associated with a fabric value score computed based on the at leastone user signal to indicate an affinity to the user; for each the secondgroup of features, identifying at least one preferred feature value, byanalyzing the user data and the public data, wherein each preferredfeature value is associated with a feature value score computed based onthe at least one user signal indicating an affinity to the user;generating one or more feature sets by selecting one preferred cut valueand one preferred fabric value for each of the first group of features,and selecting one preferred feature value for each of the second groupof features, wherein each feature set is associated with a feature setscore computed from cut value scores associated with the selectedpreferred cut values, fabric value scores associated with the selectedpreferred fabric values, feature value scores associated with theselected preferred feature values, inter-fabric score adjustments, andinter-cut score adjustments; and generating the customized garmentdesign by selecting a feature set with the highest feature set score. 2.The method of claim 1, wherein the preferred garment category is ashirt, wherein each of the first group of features for the shirt areselected from the group consisting of collar, collar band, cuff,armhole, yoke, placket, lower front body, upper front body, pocket,front placket, back body, and hem/shirt tail, and wherein each of thesecond group of features for the shirt is selected from the groupconsisting of seam style, embroidery, button, zipper, and Velcro.
 3. Themethod of claim 1, wherein the preferred garment category is a dress,wherein each of the first group of features for the dress are selectedfrom the group consisting of neckline, neck band, bodice, corset, centerfront, apex, waistline, skirt, pocket, placket, chemise, shoulder seam,arm, armhole, armhole ridge, and hemline, and wherein each of the secondgroup of features for the dress is selected from the group consisting ofseam style, embroidery, buttons, Velcro, zippers, belts, tassels,flowers, beads, sequins, piping, and laces.
 4. The method of claim 1,wherein the user data comprises one or more of a photo of the user, aphoto of a garment, a specification of the preferred garment category,description of a favorite style, description of one or more of thepluralities of features, description of a current mood, user socialmedia statuses, social media comments made by the user, social mediacomments on the user's posts, and text description of a desired garmentdesign.
 5. The method of claim 1, further comprising: specifying atleast one body measurement of the user for generating the customizedgarment design, by a process selected from the group consisting ofreceiving direct user input, three-dimensional body scanning,algorithmic computation based on answers to questions from the user,algorithmic computation based on a user photo, and transfer of data froma professional tailor.
 6. The method of claim 1, further comprisingspecifying at least one garment measurement for generating thecustomized garment design, by a process selected from the groupconsisting of receiving direct user input, algorithmic computation basedon answers to questions from the user, algorithmic computation based ona user photo, and transfer of data from a professional tailor.
 7. Themethod of claim 1, further comprising: specifying at least one garmentmeasurement for generating the customized garment design by: receivingan image of a well-fitting garment with a reference object from theuser; recognizing the scale of the reference object; using the referenceobject and a hardware processor, correcting the perspective of the rawimage to produce a corrected image; determining a scale of the correctedimage from the reference object for use with a line measurement tool;receiving a user input a first and a second end of the line measurementtool on garment measurement positions on the corrected image;determining a garment measurement between the first and second garmentmeasurement positions on the corrected image using the line measurementtool; and repeating the receiving user input and the garment measurementdetermination steps n times to generate at least n+1 garmentmeasurements, wherein n is an integer equal to at least
 3. 8. The methodof claim 1, further comprising: determining wherein the user datacomprises at least one garment photo displaying a preferred garment; inresponse to determining that the user data comprises at least onegarment photo displaying a preferred garment, analyzing the at least onegarment photo to determine a group reference features for the preferredgarment; and determining a garment sub-category within the garmentcategory for generating the customized garment design, based on thegroup of reference features.
 9. The method of claim 1, wherein each ofthe inter-fabric score adjustments is non-positive, and wherein each ofthe inter-cut score adjustment is non-positive.
 10. The method of claim1, wherein the analyzing of the user data comprises determining theuser's body shape, and wherein the identifying of the preferred garmentcategory is based on the user's body shape.
 11. The method of claim 1,wherein the at least one user signal comprises at least one facialfeature, wherein the least one facial feature is selected from the groupcomprising skin tone, facial bone structure, hair color, and eye color.12. A system for generating a customized garment design, comprising: aserver having access to at least one processor and a user device; and anon-transitory physical medium for storing program code and accessibleby the server, the program code when executed by the processor causesthe processor to: receive user data about a user, from the user, or froma third-party data source; generate at least one user signal from theuser data; identify a preferred garment category by analyzing the userdata, wherein the preferred garment category describes at least onestyle for the customized garment design; retrieve public data related tothe identified garment category; retrieve a first group and a secondgroup of features for the identified garment category from an internaldatabase, wherein each of the first group of features is associated witha cut variable and a fabric variable; for each of the first group offeatures, identify at least one preferred cut value, by analyzing theuser data and the public data, wherein each preferred cut value isassociated with a cut value score computed based on the at least oneuser signal indicating an affinity to the user; for each of the firstgroup of features, identify at least one preferred fabric value, whereineach preferred fabric value is identified from a source selected fromthe group consisting of the user data, the internal database, and thepublic data, and wherein each preferred fabric value is associated witha fabric value score computed based on the at least one user signal toindicate an affinity to the user; for each the second group of features,identify at least one preferred feature value, by analyzing the userdata, and the public data, wherein each preferred feature value isassociated with a feature value score computed based on the at least oneuser signal indicating an affinity to the user; generate one or morefeature sets by selecting one preferred cut value and one preferredfabric value for each of the first group of features, and selecting onepreferred feature value for each of the second group of features,wherein each feature set is associated with a feature set score computedfrom cut value scores associated with the selected preferred cut values,fabric value scores associated with the selected preferred fabricvalues, feature value scores associated with the selected preferredfeature values, inter-fabric score adjustments, and inter-cut scoreadjustments; and generate the customized garment design by selecting afeature set with the highest feature set score.
 13. The system of claim12, wherein the user data comprises one or more of a photo of the user,a photo of a garment, a specification of the preferred garment category,description of a favorite style, description of one or more of thepluralities of features, description of a current mood, user socialmedia statuses, social media comments made by the user, social mediacomments on the user's posts, and text description of a desired garmentdesign.
 14. The system of claim 12, wherein the program code whenexecuted by the processor further causes the processor to: receive animage of a well-fitting garment with a reference object from the user;recognize the scale of the reference object; use the reference objectand a hardware processor, correcting the perspective of the raw image toproduce a corrected image; determine a scale of the corrected image fromthe reference object for use with a line measurement tool; receive auser input a first and a second end of the line measurement tool ongarment measurement positions on the corrected image; determine agarment measurement between the first and second garment measurementpositions on the corrected image using the line measurement tool; andrepeat the receiving user input and the garment measurementdetermination steps n times to generate at least n+1 garmentmeasurements, wherein n is an integer equal to at least
 3. 15. Thesystem of claim 12, wherein the program code when executed by theprocessor, further causes the processor to: determine wherein the userdata comprises at least one garment photo displaying a preferredgarment; in response to determining that the user data comprises atleast one garment photo displaying a preferred garment, analyze the atleast one garment photo to determine a group reference features for thepreferred garment; and determine a garment sub-category within thegarment category for generating the customized garment design, based onthe group of reference features.
 16. The system of claim 12, whereineach of the inter-fabric score adjustments is non-positive, and whereineach of the inter-cut score adjustments is non-positive.
 17. The systemof claim 12, wherein the analyzing of the user data comprisesdetermining the user's body shape, and wherein the identifying of thepreferred garment category is based on the user's body shape.
 18. Thesystem of claim 12, wherein the program code when executed by theprocessor, further causes the processor to: wherein the at least oneuser signal comprises at least one facial feature, wherein the least onefacial feature is selected from the group comprising skin tone, facialbone structure, hair color, and eye color.
 19. A non-transitorycomputer-readable storage medium for generating a customized garmentdesign, the storage medium comprising program code stored thereon, thatwhen executed by a processor, causes the processor to: receive user dataabout a user, from the user, or from a third-party data source; generateat least one user signal from the user data; identify a preferredgarment category by analyzing the user data, wherein the preferredgarment category describes at least one style for the customized garmentdesign; retrieve public data related to the identified garment category;retrieve a first group and a second group of features for the identifiedgarment category from an internal database, wherein each of the firstgroup of features is associated with a cut variable and a fabricvariable; for each of the first group of features, identify at least onepreferred cut value, by analyzing the user data and the public data,wherein each preferred cut value is associated with a cut value scorecomputed based on the at least one user signal indicating an affinity tothe user; for each of the first group of features, identify at least onepreferred fabric value, wherein each preferred fabric value isidentified from a source selected from the group consisting of the userdata, the internal database, and the public data, and wherein eachpreferred fabric value is associated with a fabric value score computedbased on the at least one user signal to indicate an affinity to theuser; for each the second group of features, identify at least onepreferred feature value, by analyzing the user data and the public data,wherein each preferred feature value is associated with a feature valuescore computed based on the at least one user signal indicating anaffinity to the user; generate one or more feature sets by selecting onepreferred cut value and one preferred fabric value for each of the firstgroup of features, and selecting one preferred feature value for each ofthe second group of features, wherein each feature set is associatedwith a feature set score computed from cut value scores associated withthe selected preferred cut values, fabric value scores associated withthe selected preferred fabric values, feature value scores associatedwith the selected preferred feature values, inter-fabric scoreadjustments, and inter-cut score adjustments; and generate thecustomized garment design by selecting a feature set with the highestfeature set score.
 20. The non-transitory computer-readable of claim 19,the program code when executed by a processor, further causes theprocessor to: receive an image of a well-fitting garment with areference object from the user; recognize the scale of the referenceobject; use the reference object and a hardware processor, correctingthe perspective of the raw image to produce a corrected image; determinea scale of the corrected image from the reference object for use with aline measurement tool; receive a user input a first and a second end ofthe line measurement tool on garment measurement positions on thecorrected image; determine a garment measurement between the first andsecond garment measurement positions on the corrected image using theline measurement tool; and repeat the receiving user input and thegarment measurement determination steps n times to generate at least n+1garment measurements, wherein n is an integer equal to at least 3.